svf-tools 1.0.620 → 1.0.622
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -2
- package/SVF-doxygen/html/html/CFLAlias_8h.html +4 -0
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +19 -10
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLBase_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLDataBuilder_8h.html +96 -0
- package/SVF-doxygen/html/html/CFLDataBuilder_8h_source.html +99 -0
- package/SVF-doxygen/html/html/CFLData_8h.html +106 -0
- package/SVF-doxygen/html/html/CFLData_8h_source.html +136 -0
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/CFLSolver_8h.html +4 -0
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +22 -16
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/GraphWriter_8h_source.html +2 -1
- package/SVF-doxygen/html/html/IntervalValue_8h_source.html +17 -15
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +4 -3
- package/SVF-doxygen/html/html/Options_8h_source.html +4 -3
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/SVFG_8h_source.html +37 -36
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/WTO_8h_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +357 -351
- package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -0
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +27 -24
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +2 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLData-members.html +110 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +1126 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder-members.html +88 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder.html +380 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +48 -39
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +3 -2
- package/SVF-doxygen/html/html/classSVF_1_1HybridData-members.html +89 -0
- package/SVF-doxygen/html/html/classSVF_1_1HybridData.html +449 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntervalValue-members.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +32 -0
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +45 -44
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +28 -2
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +281 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +828 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +98 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +245 -0
- package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +96 -95
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +157 -121
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +116 -115
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +13 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +2 -2
- package/SVF-doxygen/html/html/classes.html +110 -109
- package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +4 -0
- package/SVF-doxygen/html/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
- package/SVF-doxygen/html/html/files.html +9 -7
- package/SVF-doxygen/html/html/functions.html +7 -1
- package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_a.html +38 -14
- package/SVF-doxygen/html/html/functions_b.html +9 -4
- package/SVF-doxygen/html/html/functions_c.html +59 -38
- package/SVF-doxygen/html/html/functions_d.html +7 -1
- package/SVF-doxygen/html/html/functions_e.html +5 -1
- package/SVF-doxygen/html/html/functions_func.html +35 -11
- package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_func_b.html +8 -3
- package/SVF-doxygen/html/html/functions_func_c.html +42 -27
- package/SVF-doxygen/html/html/functions_func_e.html +2 -1
- package/SVF-doxygen/html/html/functions_func_g.html +20 -7
- package/SVF-doxygen/html/html/functions_func_h.html +17 -7
- package/SVF-doxygen/html/html/functions_func_i.html +14 -10
- package/SVF-doxygen/html/html/functions_func_m.html +3 -2
- package/SVF-doxygen/html/html/functions_func_o.html +13 -11
- package/SVF-doxygen/html/html/functions_func_p.html +6 -3
- package/SVF-doxygen/html/html/functions_func_t.html +4 -0
- package/SVF-doxygen/html/html/functions_g.html +22 -9
- package/SVF-doxygen/html/html/functions_h.html +15 -5
- package/SVF-doxygen/html/html/functions_i.html +24 -15
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- package/SVF-doxygen/html/html/functions_m.html +2 -1
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +23 -21
- package/SVF-doxygen/html/html/functions_p.html +23 -20
- package/SVF-doxygen/html/html/functions_r.html +3 -5
- package/SVF-doxygen/html/html/functions_s.html +16 -13
- package/SVF-doxygen/html/html/functions_t.html +12 -2
- package/SVF-doxygen/html/html/functions_type_c.html +2 -1
- package/SVF-doxygen/html/html/functions_type_d.html +3 -0
- package/SVF-doxygen/html/html/functions_type_i.html +2 -1
- package/SVF-doxygen/html/html/functions_type_t.html +3 -0
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars.html +7 -1
- package/SVF-doxygen/html/html/functions_vars_c.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_d.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_i.html +4 -0
- package/SVF-doxygen/html/html/functions_vars_p.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_t.html +3 -0
- package/SVF-doxygen/html/html/hierarchy.html +517 -511
- package/SVF-doxygen/html/html/namespaceSVF.html +59 -30
- package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +3 -2
- package/SVF-doxygen/html/html/namespacemembers_l.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_type_l.html +3 -0
- package/SVF-doxygen/html/html/search/all_0.js +2 -1
- package/SVF-doxygen/html/html/search/all_1.js +8 -1
- package/SVF-doxygen/html/html/search/all_10.js +11 -8
- package/SVF-doxygen/html/html/search/all_11.js +3 -3
- package/SVF-doxygen/html/html/search/all_12.js +7 -6
- package/SVF-doxygen/html/html/search/all_13.js +8 -5
- package/SVF-doxygen/html/html/search/all_15.js +3 -3
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +6 -0
- package/SVF-doxygen/html/html/search/all_2.js +3 -2
- package/SVF-doxygen/html/html/search/all_3.js +11 -6
- package/SVF-doxygen/html/html/search/all_4.js +2 -1
- package/SVF-doxygen/html/html/search/all_5.js +2 -1
- package/SVF-doxygen/html/html/search/all_7.js +6 -2
- package/SVF-doxygen/html/html/search/all_8.js +5 -2
- package/SVF-doxygen/html/html/search/all_9.js +8 -6
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +4 -3
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +5 -5
- package/SVF-doxygen/html/html/search/classes_10.js +1 -0
- package/SVF-doxygen/html/html/search/classes_2.js +2 -0
- package/SVF-doxygen/html/html/search/classes_7.js +2 -1
- package/SVF-doxygen/html/html/search/classes_d.js +2 -0
- package/SVF-doxygen/html/html/search/files_2.js +2 -0
- package/SVF-doxygen/html/html/search/functions_0.js +8 -1
- package/SVF-doxygen/html/html/search/functions_1.js +3 -2
- package/SVF-doxygen/html/html/search/functions_12.js +2 -1
- package/SVF-doxygen/html/html/search/functions_17.js +6 -0
- package/SVF-doxygen/html/html/search/functions_2.js +4 -1
- package/SVF-doxygen/html/html/search/functions_4.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +5 -1
- package/SVF-doxygen/html/html/search/functions_7.js +5 -2
- package/SVF-doxygen/html/html/search/functions_8.js +2 -1
- package/SVF-doxygen/html/html/search/functions_c.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +2 -2
- package/SVF-doxygen/html/html/search/functions_f.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_11.js +2 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_3.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_a.js +1 -0
- package/SVF-doxygen/html/html/search/variables_0.js +2 -1
- package/SVF-doxygen/html/html/search/variables_10.js +2 -0
- package/SVF-doxygen/html/html/search/variables_12.js +1 -0
- package/SVF-doxygen/html/html/search/variables_13.js +3 -2
- package/SVF-doxygen/html/html/search/variables_3.js +1 -0
- package/SVF-doxygen/html/html/search/variables_4.js +1 -0
- package/SVF-doxygen/html/html/search/variables_5.js +1 -0
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +2 -1
- package/SVF-doxygen/html/html/search/variables_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode-members.html +86 -0
- package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode.html +255 -0
- package/include/AbstractExecution/IntervalValue.h +5 -0
- package/include/CFL/CFLAlias.h +34 -0
- package/include/CFL/CFLData.h +316 -0
- package/include/CFL/CFLDataBuilder.h +91 -0
- package/include/CFL/CFLSolver.h +21 -0
- package/include/Graphs/SVFG.h +6 -0
- package/include/Util/Options.h +1 -0
- package/lib/CFL/CFLAlias.cpp +36 -0
- package/lib/Util/Options.cpp +5 -0
- package/package.json +1 -1
- package/tools/CFL/cfl.cpp +2 -0
|
@@ -66,19 +66,19 @@ $(function() {
|
|
|
66
66
|
<div class="title">IntervalValue.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="IntervalValue_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- IntervalValue.h ----Interval Value for Interval Domain-------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2022> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">/*</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * IntervalValue.h</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> *</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * Created on: Aug 4, 2022</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Author: Jiawei Wang, Xiao Cheng</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> *</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef Z3_EXAMPLE_IntervalValue_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define Z3_EXAMPLE_IntervalValue_H</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="NumericLiteral_8h.html">AbstractExecution/NumericLiteral.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="AbstractValue_8h.html">AbstractExecution/AbstractValue.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html"> 43</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> final : <span class="keyword">public</span> <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// Lower bound</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95"> 47</a></span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="comment">// Upper bound</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff"> 50</a></span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Invariant: isBottom() <=> _lb = 1 && _ub = 0</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059"> 55</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a1e693e837e8d67ce76a03ec243c94f15">is_minus_infinity</a>() && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#a538deb0b9e88fd99b9768f5775e58ca7">is_plus_infinity</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001"> 60</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> !_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(_lb);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371"> 66</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371">minus_infinity</a>()</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1NumericLiteral.html#ac0872619aefd1f680d08d3ec4360537c">NumericLiteral::minus_infinity</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f"> 72</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">plus_infinity</a>()</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1NumericLiteral.html#a42f5bdc956614b4c431f7045f744ac7d">NumericLiteral::plus_infinity</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3dba35c84607bd3ed4e62a90ae2799cf"> 77</a></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a3dba35c84607bd3ed4e62a90ae2799cf">is_infinite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &e)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> e.<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b"> 83</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">top</a>()</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(INT_MIN, INT_MAX);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443"> 89</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">bottom</a>()</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 0);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0"> 95</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>() : <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>(<a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>::<a class="code" href="classSVF_1_1AbstractValue.html#afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a">IntervalK</a>), _lb(INT_MIN), _ub(INT_MAX) {}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ad1a81f516a61f54a595fa15444e2001b"> 98</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad1a81f516a61f54a595fa15444e2001b">IntervalValue</a>(<span class="keywordtype">double</span> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) : <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>(<a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>::<a class="code" href="classSVF_1_1AbstractValue.html#afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a">IntervalK</a>), _lb(n), _ub(n) {}</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a926ca60622fdcd225ef7d8b7fd4054b2"> 100</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a926ca60622fdcd225ef7d8b7fd4054b2">IntervalValue</a>(<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) n) {}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3ac170a902accf8d84b6b77ab88a8fd3"> 102</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a3ac170a902accf8d84b6b77ab88a8fd3">IntervalValue</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) n) {}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a73aee65aae0f2ef368d159d29e1d5a30"> 105</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a73aee65aae0f2ef368d159d29e1d5a30">IntervalValue</a>(<a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>(<a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>::<a class="code" href="classSVF_1_1AbstractValue.html#afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a">IntervalK</a>),</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  _lb(<a class="code" href="namespacestd.html">std</a>::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(lb)), _ub(<a class="code" href="namespacestd.html">std</a>::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(ub)) {}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a50d11cbc14f717d679caafe3cf59e0c5"> 108</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a50d11cbc14f717d679caafe3cf59e0c5">IntervalValue</a>(<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(<a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a>(lb), <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a>(ub)) {}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ac3736c3e3129cfdb6ee415ef64c2e75c"> 110</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#ac3736c3e3129cfdb6ee415ef64c2e75c">IntervalValue</a>(<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) lb, (double) ub) {}</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a304db5abb4cc7added56dbcbcd94d905"> 112</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a304db5abb4cc7added56dbcbcd94d905">IntervalValue</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) lb, (double) ub) {}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a6ec0263a3036734c28cd241007f8a490"> 114</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a6ec0263a3036734c28cd241007f8a490">IntervalValue</a>(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) lb, (double) ub) {}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a35e3062c24a13ac4ed50729339408f65"> 116</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a35e3062c24a13ac4ed50729339408f65">IntervalValue</a>(<a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) lb, (double) ub) {}</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &&) noexcept = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a2f2121ab7e99c9057b1855f355dd0d4b">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &<a class="code" href="cJSON_8cpp.html#a8a1a0a26c50cc4becfc754bb68d1dc6b">a</a>) noexcept = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a2f2121ab7e99c9057b1855f355dd0d4b">operator=</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &&) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3ac2a92a9d67dec907fa7ae4181dc171"> 131</a></span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1IntervalValue.html#a3ac2a92a9d67dec907fa7ae4181dc171">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">bottom</a>();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">top</a>();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && other.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> eq(this->_lb, other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) ? <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> value = *<span class="keyword">this</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  value.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(other);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">if</span> (value.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="comment">// return top();</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a18d0f2c15ea6fc84dfa28ca494423af9"> 165</a></span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1IntervalValue.html#a18d0f2c15ea6fc84dfa28ca494423af9">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">bottom</a>();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">top</a>();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && other.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> eq(this->_lb, other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) ? <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> value = *<span class="keyword">this</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  value.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(other);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (!value.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1IntervalValue.html#afcd424e419fe66750c47df21774bb22c">~IntervalValue</a>() <span class="keyword">override</span> = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a101633c38e284f6e2bcad852daa3baae"> 202</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a101633c38e284f6e2bcad852daa3baae">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> *)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a72d89f686c6239c43ea1ea6fcab3062a"> 207</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a72d89f686c6239c43ea1ea6fcab3062a">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a> *v)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">return</span> v-><a class="code" href="classSVF_1_1AbstractValue.html#a74bc740e894dfbdb2253bedc2851dd2e">getAbstractValueKind</a>() == <a class="code" href="classSVF_1_1AbstractValue.html#afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a">AbstractValue::IntervalK</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264"> 214</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  assert(!this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>());</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9"> 221</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  assert(!this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>());</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#adf3cae41adaeb62c3b5da19e81adbb5d"> 228</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#adf3cae41adaeb62c3b5da19e81adbb5d">setLb</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>)</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  this->_lb = <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#aa3b742bd0116a6b7bf290286902b470b"> 234</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa3b742bd0116a6b7bf290286902b470b">setUb</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  this->_ub = <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a8de8e78efcee26d74fe3d34c405dee0a"> 240</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a8de8e78efcee26d74fe3d34c405dee0a">setValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  this->_lb = <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  this->_ub = <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a970b85f66d80cfc8ca56a8846c921afa"> 247</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a970b85f66d80cfc8ca56a8846c921afa">is_zero</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">return</span> _lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a8d874a7b6396e8af210c4a36d3234d71">is_zero</a>() && _ub.<a class="code" href="classSVF_1_1NumericLiteral.html#a8d874a7b6396e8af210c4a36d3234d71">is_zero</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a78b5445006d765160bbcb4ae2e11bd8a"> 253</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a78b5445006d765160bbcb4ae2e11bd8a">is_infinite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">return</span> _lb.<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() || _ub.<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454"> 259</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  assert(<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && <span class="stringliteral">"this IntervalValue is not numeral"</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span> _lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0"> 266</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">return</span> eq(_lb, _ub);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30"> 272</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30">set_to_bottom</a>()</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  this->_lb = 1;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  this->_ub = 0;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a8a9edd3eb9c31ecff090953301bf822d"> 279</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a8a9edd3eb9c31ecff090953301bf822d">set_to_top</a>()</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  this->_lb = <a class="code" href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371">minus_infinity</a>();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  this->_ub = <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">plus_infinity</a>();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a2dd004dda59ee5271081afd082374039"> 286</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a2dd004dda59ee5271081afd082374039">leq</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a312f9257f8562fce510c1257d8a6e4df"> 304</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a312f9257f8562fce510c1257d8a6e4df">geq</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ac06d554ff5f63c43f9b02378800488c1"> 322</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#ac06d554ff5f63c43f9b02378800488c1">equals</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">return</span> other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a325e99ded5a026ecdae64004b9392f4a">equal</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#a325e99ded5a026ecdae64004b9392f4a">equal</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="comment">// TODO: IntervalValueZ3Expr equals</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="comment">// TODO: shall we consider expr and solve.</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99"> 341</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  this->_lb = other.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  this->_ub = other.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  this->_lb = min(this-><a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>(), other.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  this->_ub = max(this-><a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>(), other.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ab7ddcc29a116944a91db24af90d4c144"> 367</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#ab7ddcc29a116944a91db24af90d4c144">widen_with</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  this->_lb = other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  this->_ub = other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  this->_lb = !<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371">minus_infinity</a>() : this-><a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  this->_ub = !<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">plus_infinity</a>() : this-><a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a6c175067e5573ae7180ae4d872c49c8f"> 386</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a6c175067e5573ae7180ae4d872c49c8f">narrow_with</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  this-><a class="code" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30">set_to_bottom</a>();</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  this->_lb = <a class="code" href="classSVF_1_1IntervalValue.html#a78b5445006d765160bbcb4ae2e11bd8a">is_infinite</a>(this->_lb) ? other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a> : this-><a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  this->_ub = <a class="code" href="classSVF_1_1IntervalValue.html#a78b5445006d765160bbcb4ae2e11bd8a">is_infinite</a>(this->_ub) ? other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a> : this-><a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f"> 404</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  this-><a class="code" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30">set_to_bottom</a>();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  this->_lb = max(this->_lb, other.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  this->_ub = min(this->_ub, other.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  this-><a class="code" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30">set_to_bottom</a>();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73"> 420</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(<span class="keywordtype">int</span> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() <= n && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ac4896347f704db07695f4b8dfc42aad7"> 425</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#ac4896347f704db07695f4b8dfc42aad7">dump</a>(std::ostream &o)<span class="keyword"> const</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  o << <span class="stringliteral">"⊥"</span>;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  o << <span class="stringliteral">"["</span> << this->_lb << <span class="stringliteral">", "</span> << this->_ub << <span class="stringliteral">"]"</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> }; <span class="comment">// end class IntervalValue</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ad9d56b31ab074c813b48da4c2e0742aa"> 440</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#ad9d56b31ab074c813b48da4c2e0742aa">operator+</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <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><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <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><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  }</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">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>(), 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><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36"> 458</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">operator-</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <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><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <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><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() - rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>(), lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() - rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="namespaceSVF.html#abf0dfb872989751b13069f859ef408e1"> 476</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#abf0dfb872989751b13069f859ef408e1">operator*</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <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><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  {</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ll = 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><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> lu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() * rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ul = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() * rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> uu = 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><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(std::min({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}),</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  std::max({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}));</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> }</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a23c136994bc83222e1913d43ec3e7468"> 495</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a23c136994bc83222e1913d43ec3e7468">operator/</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <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><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(0))</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a970b85f66d80cfc8ca56a8846c921afa">is_zero</a>() ? <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  }</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="comment">// Neither the dividend nor the divisor contains 0</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ll = 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><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> lu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() / rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ul = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() / rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> uu = 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><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(std::min({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}),</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  std::max({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}));</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span> }</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div><div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a2f3ddba25bc972f70300128369e4cd1d"> 519</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a2f3ddba25bc972f70300128369e4cd1d">operator%</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> {</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <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><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(0))</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  {</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a970b85f66d80cfc8ca56a8846c921afa">is_zero</a>() ? <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  }</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  {</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">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>(), 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><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  }</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordtype">double</span> n_ub = std::max(std::abs(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()), std::abs(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()));</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordtype">double</span> d_ub = std::max(std::abs(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()), std::abs(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())) - 1;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a> = std::min(n_ub, d_ub);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div><div class="line"><a name="l00540"></a><span class="lineno"> 540</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() < 0)</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() > 0)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(-ub, ub);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  }</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(-ub, <span class="keywordtype">double</span>(0));</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  }</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(<span class="keywordtype">double</span>(0), ub);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span> }</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2"> 559</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">operator></a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span> {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <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><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <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><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  {</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  }</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  {</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="comment">// lhs[3,4] rhs[1,2]</span></div><div class="line"><a name="l00578"></a><span class="lineno"> 578</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() > rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="comment">// lhs[1,2] rhs[3,4]</span></div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  }</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() < rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  {</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  }</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="comment">// lhs[1,3] rhs[2,4]</span></div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  }</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span> }</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div><div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b"> 597</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b">operator<</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span> {</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <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><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  {</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  }</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <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><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  }</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  {</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  {</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  }</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="comment">// lhs [1,2] rhs [3,4]</span></div><div class="line"><a name="l00616"></a><span class="lineno"> 616</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() < rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  {</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="comment">// lhs [3,4] rhs [1,2]</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  }</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() > rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  {</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="comment">// lhs [1,3] rhs [2,4]</span></div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  }</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  }</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span> }</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span> </div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24"> 636</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> {</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <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><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  {</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  }</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <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><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  {</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  {</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="comment">// lhs [2,3] rhs [1,2]</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  {</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="comment">// lhs [1,2] rhs[3,4]</span></div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  }</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() < rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="comment">// lhs [1,3] rhs [2,4]</span></div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  }</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  }</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  }</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> }</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293"> 675</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span> {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <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><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  }</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <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><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  }</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  }</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  {</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="comment">// lhs [1,2] rhs [2,3]</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() <= rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="comment">// lhs [3,4] rhs[1,2]</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  }</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() > rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="comment">// lhs [1,3] rhs [2,4]</span></div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  }</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  }</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span> }</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span> </div><div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6"> 714</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">operator<<</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span> {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="comment">//TODO: implement <<</span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <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><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</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><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  {</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> shift = rhs;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  shift.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>()));</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">if</span> (shift.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> coeff(1 << (<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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(),</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  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><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  << (<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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">return</span> lhs * coeff;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  }</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span> }</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span> </div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee"> 735</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee">operator>></a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="comment">//TODO: implement >></span></div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <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><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <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><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  {</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> shift = rhs;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  shift.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>()));</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">if</span> (shift.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(0))</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <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><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <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><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> tmp = l >> rhs;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  tmp.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(u >> rhs);</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  tmp.join_with(<a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0));</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">return</span> tmp;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  }</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  {</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ll = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() >> shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> lu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() >> shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ul = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() >> shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> uu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() >> shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(std::min({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}),</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  std::max({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}));</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  }</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span> }</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span> </div><div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941"> 770</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941">operator&</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span> {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <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><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  {</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>((<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>() & (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>());</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  }</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0)</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  {</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, std::min(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()));</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0)</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  {</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  }</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0)</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  {</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  }</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  }</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span> }</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span> </div><div class="line"><a name="l00797"></a><span class="lineno"><a class="line" href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8"> 797</a></span> <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> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span> {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordtype">int</span> i = 1;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keywordflow">while</span> ((num >> i) != 0)</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  ++i;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  }</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordflow">return</span> 1 << i;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  };</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <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><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>((<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>() | (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>());</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && !lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() &&</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && !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><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordtype">double</span> m = std::max(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a> = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, ub);</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  }</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  {</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  }</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span> }</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span> </div><div class="line"><a name="l00826"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d"> 826</a></span> <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> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span> {</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  {</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordtype">int</span> i = 1;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">while</span> ((num >> i) != 0)</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  {</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  ++i;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  }</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordflow">return</span> 1 << i;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  };</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <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><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>((<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>() ^ (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>());</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && !lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() &&</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && !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><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  {</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordtype">double</span> m = std::max(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a> = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, ub);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  {</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  }</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span> }</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span> </div><div class="line"><a name="l00855"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a9f1d12be8c396b73b5a37de2061a24b0"> 855</a></span> <span class="keyword">inline</span> std::ostream &<a class="code" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">operator<<</a>(std::ostream &o,</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>)</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span> {</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  IntervalValue.<a class="code" href="classSVF_1_1IntervalValue.html#ac4896347f704db07695f4b8dfc42aad7">dump</a>(o);</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span> }</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span> </div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span> } <span class="comment">// end namespace SVF</span></div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="preprocessor">#endif //Z3_EXAMPLE_IntervalValue_H</span></div><div class="ttc" id="classSVF_1_1IntervalValue_html"><div class="ttname"><a href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00043">IntervalValue.h:43</a></div></div>
|
|
69
|
+
<a href="IntervalValue_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- IntervalValue.h ----Interval Value for Interval Domain-------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2022> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">/*</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * IntervalValue.h</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> *</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * Created on: Aug 4, 2022</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Author: Jiawei Wang, Xiao Cheng</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> *</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef Z3_EXAMPLE_IntervalValue_H</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define Z3_EXAMPLE_IntervalValue_H</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="NumericLiteral_8h.html">AbstractExecution/NumericLiteral.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="AbstractValue_8h.html">AbstractExecution/AbstractValue.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html"> 43</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> final : <span class="keyword">public</span> <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// Lower bound</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95"> 47</a></span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="comment">// Upper bound</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff"> 50</a></span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Invariant: isBottom() <=> _lb = 1 && _ub = 0</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059"> 55</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a1e693e837e8d67ce76a03ec243c94f15">is_minus_infinity</a>() && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#a538deb0b9e88fd99b9768f5775e58ca7">is_plus_infinity</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001"> 60</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> !_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(_lb);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371"> 66</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371">minus_infinity</a>()</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1NumericLiteral.html#ac0872619aefd1f680d08d3ec4360537c">NumericLiteral::minus_infinity</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f"> 72</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">plus_infinity</a>()</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1NumericLiteral.html#a42f5bdc956614b4c431f7045f744ac7d">NumericLiteral::plus_infinity</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3dba35c84607bd3ed4e62a90ae2799cf"> 77</a></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a3dba35c84607bd3ed4e62a90ae2799cf">is_infinite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &e)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> e.<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b"> 83</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">top</a>()</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(INT_MIN, INT_MAX);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443"> 89</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">bottom</a>()</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 0);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0"> 95</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>() : <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>(<a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>::<a class="code" href="classSVF_1_1AbstractValue.html#afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a">IntervalK</a>), _lb(INT_MIN), _ub(INT_MAX) {}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ad1a81f516a61f54a595fa15444e2001b"> 98</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad1a81f516a61f54a595fa15444e2001b">IntervalValue</a>(<span class="keywordtype">double</span> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) : <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>(<a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>::<a class="code" href="classSVF_1_1AbstractValue.html#afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a">IntervalK</a>), _lb(n), _ub(n) {}</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a926ca60622fdcd225ef7d8b7fd4054b2"> 100</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a926ca60622fdcd225ef7d8b7fd4054b2">IntervalValue</a>(<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) n) {}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3ac170a902accf8d84b6b77ab88a8fd3"> 102</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a3ac170a902accf8d84b6b77ab88a8fd3">IntervalValue</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) n) {}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a73aee65aae0f2ef368d159d29e1d5a30"> 105</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a73aee65aae0f2ef368d159d29e1d5a30">IntervalValue</a>(<a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>(<a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a>::<a class="code" href="classSVF_1_1AbstractValue.html#afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a">IntervalK</a>),</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  _lb(<a class="code" href="namespacestd.html">std</a>::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(lb)), _ub(<a class="code" href="namespacestd.html">std</a>::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(ub)) {}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a50d11cbc14f717d679caafe3cf59e0c5"> 108</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a50d11cbc14f717d679caafe3cf59e0c5">IntervalValue</a>(<span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(<a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a>(lb), <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a>(ub)) {}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ac3736c3e3129cfdb6ee415ef64c2e75c"> 110</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#ac3736c3e3129cfdb6ee415ef64c2e75c">IntervalValue</a>(<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) lb, (double) ub) {}</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a304db5abb4cc7added56dbcbcd94d905"> 112</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a304db5abb4cc7added56dbcbcd94d905">IntervalValue</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) lb, (double) ub) {}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a6ec0263a3036734c28cd241007f8a490"> 114</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a6ec0263a3036734c28cd241007f8a490">IntervalValue</a>(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) lb, (double) ub) {}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a35e3062c24a13ac4ed50729339408f65"> 116</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1IntervalValue.html#a35e3062c24a13ac4ed50729339408f65">IntervalValue</a>(<a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>) : <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((double) lb, (double) ub) {}</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &&) noexcept = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a2f2121ab7e99c9057b1855f355dd0d4b">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &<a class="code" href="cJSON_8cpp.html#a8a1a0a26c50cc4becfc754bb68d1dc6b">a</a>) noexcept = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a2f2121ab7e99c9057b1855f355dd0d4b">operator=</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &&) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3ac2a92a9d67dec907fa7ae4181dc171"> 131</a></span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1IntervalValue.html#a3ac2a92a9d67dec907fa7ae4181dc171">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">bottom</a>();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">top</a>();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && other.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> eq(this->_lb, other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) ? <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> value = *<span class="keyword">this</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  value.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(other);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">if</span> (value.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="comment">// return top();</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a18d0f2c15ea6fc84dfa28ca494423af9"> 165</a></span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1IntervalValue.html#a18d0f2c15ea6fc84dfa28ca494423af9">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">bottom</a>();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">top</a>();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && other.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> eq(this->_lb, other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) ? <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> value = *<span class="keyword">this</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  value.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(other);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (!value.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1IntervalValue.html#afcd424e419fe66750c47df21774bb22c">~IntervalValue</a>() <span class="keyword">override</span> = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a101633c38e284f6e2bcad852daa3baae"> 202</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a101633c38e284f6e2bcad852daa3baae">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> *)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a72d89f686c6239c43ea1ea6fcab3062a"> 207</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a72d89f686c6239c43ea1ea6fcab3062a">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractValue.html">AbstractValue</a> *v)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">return</span> v-><a class="code" href="classSVF_1_1AbstractValue.html#a74bc740e894dfbdb2253bedc2851dd2e">getAbstractValueKind</a>() == <a class="code" href="classSVF_1_1AbstractValue.html#afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a">AbstractValue::IntervalK</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264"> 214</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  assert(!this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>());</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9"> 221</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  assert(!this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>());</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">return</span> this-><a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#adf3cae41adaeb62c3b5da19e81adbb5d"> 228</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#adf3cae41adaeb62c3b5da19e81adbb5d">setLb</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>)</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  this->_lb = <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#aa3b742bd0116a6b7bf290286902b470b"> 234</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa3b742bd0116a6b7bf290286902b470b">setUb</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  this->_ub = <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a8de8e78efcee26d74fe3d34c405dee0a"> 240</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a8de8e78efcee26d74fe3d34c405dee0a">setValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> &<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  this->_lb = <a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  this->_ub = <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a970b85f66d80cfc8ca56a8846c921afa"> 247</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a970b85f66d80cfc8ca56a8846c921afa">is_zero</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">return</span> _lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a8d874a7b6396e8af210c4a36d3234d71">is_zero</a>() && _ub.<a class="code" href="classSVF_1_1NumericLiteral.html#a8d874a7b6396e8af210c4a36d3234d71">is_zero</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a78b5445006d765160bbcb4ae2e11bd8a"> 253</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a78b5445006d765160bbcb4ae2e11bd8a">is_infinite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">return</span> _lb.<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() || _ub.<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454"> 259</a></span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  assert(<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && <span class="stringliteral">"this IntervalValue is not numeral"</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span> _lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0"> 266</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">return</span> eq(_lb, _ub);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30"> 272</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30">set_to_bottom</a>()</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  this->_lb = 1;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  this->_ub = 0;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a8a9edd3eb9c31ecff090953301bf822d"> 279</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a8a9edd3eb9c31ecff090953301bf822d">set_to_top</a>()</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  this->_lb = <a class="code" href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371">minus_infinity</a>();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  this->_ub = <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">plus_infinity</a>();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a2dd004dda59ee5271081afd082374039"> 286</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a2dd004dda59ee5271081afd082374039">leq</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a312f9257f8562fce510c1257d8a6e4df"> 304</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#a312f9257f8562fce510c1257d8a6e4df">geq</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ac06d554ff5f63c43f9b02378800488c1"> 322</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#ac06d554ff5f63c43f9b02378800488c1">equals</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)<span class="keyword"> const</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">return</span> other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a325e99ded5a026ecdae64004b9392f4a">equal</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>) && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#a325e99ded5a026ecdae64004b9392f4a">equal</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="comment">// TODO: IntervalValueZ3Expr equals</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="comment">// TODO: shall we consider expr and solve.</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99"> 341</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  this->_lb = other.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  this->_ub = other.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  this->_lb = min(this-><a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>(), other.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  this->_ub = max(this-><a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>(), other.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ab7ddcc29a116944a91db24af90d4c144"> 367</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#ab7ddcc29a116944a91db24af90d4c144">widen_with</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  this->_lb = other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  this->_ub = other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  this->_lb = !<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#aa01880cdfc3b9504bef63a3bf315c54b">leq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371">minus_infinity</a>() : this-><a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  this->_ub = !<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ab8ea498ca849eb969e721772d432b29d">geq</a>(other.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>()) ? <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">plus_infinity</a>() : this-><a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a6c175067e5573ae7180ae4d872c49c8f"> 386</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a6c175067e5573ae7180ae4d872c49c8f">narrow_with</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  this-><a class="code" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30">set_to_bottom</a>();</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  this->_lb = <a class="code" href="classSVF_1_1IntervalValue.html#a78b5445006d765160bbcb4ae2e11bd8a">is_infinite</a>(this->_lb) ? other.<a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a> : this-><a class="code" href="classSVF_1_1IntervalValue.html#a0827c976d921894e89ca4ac88ecf3f95">_lb</a>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  this->_ub = <a class="code" href="classSVF_1_1IntervalValue.html#a78b5445006d765160bbcb4ae2e11bd8a">is_infinite</a>(this->_ub) ? other.<a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a> : this-><a class="code" href="classSVF_1_1IntervalValue.html#a3c00a3b16192645f667a88bf636f01ff">_ub</a>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f"> 404</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &other)</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || other.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  this-><a class="code" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30">set_to_bottom</a>();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  this->_lb = max(this->_lb, other.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  this->_ub = min(this->_ub, other.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>());</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  this-><a class="code" href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30">set_to_bottom</a>();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73"> 420</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(<span class="keywordtype">int</span> <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">return</span> this->_lb.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() <= n && this->_ub.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#ac4896347f704db07695f4b8dfc42aad7"> 425</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IntervalValue.html#ac4896347f704db07695f4b8dfc42aad7">dump</a>(std::ostream &o)<span class="keyword"> const</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  o << <span class="stringliteral">"⊥"</span>;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  o << <span class="stringliteral">"["</span> << this->_lb << <span class="stringliteral">", "</span> << this->_ub << <span class="stringliteral">"]"</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classSVF_1_1IntervalValue.html#af5ee3e3b58d9661217ab6f08ffb98bbd"> 437</a></span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1IntervalValue.html#af5ee3e3b58d9661217ab6f08ffb98bbd">toString</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">return</span> <span class="stringliteral">"["</span> + std::to_string(<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>()) + <span class="stringliteral">", "</span> + std::to_string(<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>()) + <span class="stringliteral">"]"</span>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> }; <span class="comment">// end class IntervalValue</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ad9d56b31ab074c813b48da4c2e0742aa"> 445</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#ad9d56b31ab074c813b48da4c2e0742aa">operator+</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <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><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <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><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  {</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">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>(), 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><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> }</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div><div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36"> 463</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">operator-</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <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><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  }</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <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><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() - rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>(), lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() - rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>());</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="namespaceSVF.html#abf0dfb872989751b13069f859ef408e1"> 481</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#abf0dfb872989751b13069f859ef408e1">operator*</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <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><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  }</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ll = 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><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> lu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() * rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ul = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() * rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> uu = 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><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(std::min({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}),</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  std::max({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}));</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  }</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> }</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a23c136994bc83222e1913d43ec3e7468"> 500</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a23c136994bc83222e1913d43ec3e7468">operator/</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <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><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(0))</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a970b85f66d80cfc8ca56a8846c921afa">is_zero</a>() ? <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="comment">// Neither the dividend nor the divisor contains 0</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ll = 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><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> lu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() / rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ul = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() / rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> uu = 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><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(std::min({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}),</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  std::max({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}));</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a2f3ddba25bc972f70300128369e4cd1d"> 524</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a2f3ddba25bc972f70300128369e4cd1d">operator%</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs,</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <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><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  {</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(0))</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">return</span> lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a970b85f66d80cfc8ca56a8846c921afa">is_zero</a>() ? <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">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>(), 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><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordtype">double</span> n_ub = std::max(std::abs(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()), std::abs(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()));</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordtype">double</span> d_ub = std::max(std::abs(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()), std::abs(rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())) - 1;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a> = std::min(n_ub, d_ub);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div><div class="line"><a name="l00545"></a><span class="lineno"> 545</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() < 0)</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() > 0)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(-ub, ub);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  }</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(-ub, <span class="keywordtype">double</span>(0));</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(<span class="keywordtype">double</span>(0), ub);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  }</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> }</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div><div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2"> 564</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">operator></a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span> {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <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><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  {</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <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><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  }</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  {</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  }</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="comment">// lhs[3,4] rhs[1,2]</span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() > rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  {</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="comment">// lhs[1,2] rhs[3,4]</span></div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  }</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() < rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  }</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  {</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="comment">// lhs[1,3] rhs[2,4]</span></div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  }</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span> }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b"> 602</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b">operator<</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span> {</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <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><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  }</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <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><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  {</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  }</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  {</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  {</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  }</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  {</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="comment">// lhs [1,2] rhs [3,4]</span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() < rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  {</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="comment">// lhs [3,4] rhs [1,2]</span></div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  }</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() > rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="comment">// lhs [1,3] rhs [2,4]</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  {</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  }</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  }</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span> </div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24"> 641</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span> {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <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><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  {</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  }</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <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><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  {</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  }</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  {</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  {</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  }</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  {</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="comment">// lhs [2,3] rhs [1,2]</span></div><div class="line"><a name="l00660"></a><span class="lineno"> 660</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="comment">// lhs [1,2] rhs[3,4]</span></div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  }</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() < rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="comment">// lhs [1,3] rhs [2,4]</span></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  }</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  {</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  }</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  }</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  }</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span> }</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span> </div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293"> 680</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span> {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <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><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <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><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  {</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  }</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  {</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  {</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1) : <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  }</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="comment">// lhs [1,2] rhs [2,3]</span></div><div class="line"><a name="l00699"></a><span class="lineno"> 699</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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() <= rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="comment">// lhs [3,4] rhs[1,2]</span></div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  }</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() > rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>())</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 0);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="comment">// lhs [1,3] rhs [2,4]</span></div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  }</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  {</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <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#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(1, 1);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, 1);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  }</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  }</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span> }</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div><div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6"> 719</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">operator<<</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> {</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="comment">//TODO: implement <<</span></div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <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><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</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><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> shift = rhs;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  shift.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>()));</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">if</span> (shift.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> coeff(1 << (<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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(),</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  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><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  << (<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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">return</span> lhs * coeff;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  }</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span> }</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span> </div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee"> 740</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee">operator>></a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span> {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="comment">//TODO: implement >></span></div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <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><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <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><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  {</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> shift = rhs;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  shift.<a class="code" href="classSVF_1_1IntervalValue.html#a144e17cec654e83654298b379ed4ce9f">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0, <a class="code" href="classSVF_1_1IntervalValue.html#a739ab04e16ec1156be71b29d49998a4f">IntervalValue::plus_infinity</a>()));</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">if</span> (shift.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">contains</a>(0))</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  {</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <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><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <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><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> tmp = l >> rhs;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  tmp.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(u >> rhs);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  tmp.join_with(<a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0));</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">return</span> tmp;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  {</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ll = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() >> shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> lu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>() >> shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> ul = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() >> shift.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>();</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <a class="code" href="classSVF_1_1NumericLiteral.html">NumericLiteral</a> uu = lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>() >> shift.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>();</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(std::min({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}),</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  std::max({ll.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), lu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), ul.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), uu.<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()}));</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  }</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  }</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span> }</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span> </div><div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941"> 775</a></span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941">operator&</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span> {</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <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><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>((<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>() & (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>());</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  }</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0)</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  {</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, std::min(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>()));</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  }</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0)</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  }</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0)</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  }</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  }</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span> }</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div><div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8"> 802</a></span> <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> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span> {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  {</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordtype">int</span> i = 1;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <span class="keywordflow">while</span> ((num >> i) != 0)</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  {</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  ++i;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  }</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">return</span> 1 << i;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  };</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <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><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>((<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>() | (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>());</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && !lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() &&</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && !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><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  {</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="keywordtype">double</span> m = std::max(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a> = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, ub);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  }</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  {</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  }</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span> }</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d"> 831</a></span> <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> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &rhs)</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span> {</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordtype">int</span> i = 1;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="keywordflow">while</span> ((num >> i) != 0)</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  {</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  ++i;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  }</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="keywordflow">return</span> 1 << i;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  };</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <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><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>() && rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>((<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)lhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>() ^ (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)rhs.<a class="code" href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">getNumeral</a>());</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <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#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && !lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#ac4acd8ca01d2aa1715c18beb46b0ae1d">is_infinity</a>() &&</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  rhs.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>() >= 0 && !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><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  {</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordtype">double</span> m = std::max(lhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>(), rhs.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">getNumeral</a>());</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordtype">double</span> <a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a> = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#ad51535cb50a03df7a439b4e5b5d305f0">IntervalValue</a>(0.0, ub);</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  {</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  }</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span> }</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span> </div><div class="line"><a name="l00860"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a9f1d12be8c396b73b5a37de2061a24b0"> 860</a></span> <span class="keyword">inline</span> std::ostream &<a class="code" href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">operator<<</a>(std::ostream &o,</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>)</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span> {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  IntervalValue.<a class="code" href="classSVF_1_1IntervalValue.html#ac4896347f704db07695f4b8dfc42aad7">dump</a>(o);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span> }</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span> </div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span> } <span class="comment">// end namespace SVF</span></div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="preprocessor">#endif //Z3_EXAMPLE_IntervalValue_H</span></div><div class="ttc" id="classSVF_1_1IntervalValue_html"><div class="ttname"><a href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00043">IntervalValue.h:43</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_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#l00207">IntervalValue.h:207</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a73aee65aae0f2ef368d159d29e1d5a30"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a73aee65aae0f2ef368d159d29e1d5a30">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue(NumericLiteral lb, NumericLiteral ub)</div><div class="ttdoc">Create the IntervalValue [lb, ub]. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00105">IntervalValue.h:105</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a6ec0263a3036734c28cd241007f8a490"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a6ec0263a3036734c28cd241007f8a490">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue(s64_t lb, s64_t ub)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00114">IntervalValue.h:114</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1NumericLiteral_html_ac0872619aefd1f680d08d3ec4360537c"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#ac0872619aefd1f680d08d3ec4360537c">SVF::NumericLiteral::minus_infinity</a></div><div class="ttdeci">static NumericLiteral minus_infinity()</div><div class="ttdoc">Get minus infinity -oo. </div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00076">NumericLiteral.h:76</a></div></div>
|
|
74
|
-
<div class="ttc" id="namespaceSVF_html_a4b2b5d8755b9f0c4f82a9f82b4631fee"><div class="ttname"><a href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee">SVF::operator>></a></div><div class="ttdeci">IntervalValue operator>>(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Left binary shift of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
74
|
+
<div class="ttc" id="namespaceSVF_html_a4b2b5d8755b9f0c4f82a9f82b4631fee"><div class="ttname"><a href="namespaceSVF.html#a4b2b5d8755b9f0c4f82a9f82b4631fee">SVF::operator>></a></div><div class="ttdeci">IntervalValue operator>>(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Left binary shift of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00740">IntervalValue.h:740</a></div></div>
|
|
75
75
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a3ac170a902accf8d84b6b77ab88a8fd3"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3ac170a902accf8d84b6b77ab88a8fd3">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue(u32_t n)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00102">IntervalValue.h:102</a></div></div>
|
|
76
76
|
<div class="ttc" id="classSVF_1_1NumericLiteral_html_a1e693e837e8d67ce76a03ec243c94f15"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a1e693e837e8d67ce76a03ec243c94f15">SVF::NumericLiteral::is_minus_infinity</a></div><div class="ttdeci">bool is_minus_infinity() const</div><div class="ttdoc">Check if this is minus infinity. </div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00088">NumericLiteral.h:88</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_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 &other)</div><div class="ttdoc">Current IntervalValue joins with another IntervalValue. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00341">IntervalValue.h:341</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_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#l00110">IntervalValue.h:110</a></div></div>
|
|
79
79
|
<div class="ttc" id="classSVF_1_1NumericLiteral_html_a42f5bdc956614b4c431f7045f744ac7d"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a42f5bdc956614b4c431f7045f744ac7d">SVF::NumericLiteral::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="NumericLiteral_8h_source.html#l00082">NumericLiteral.h:82</a></div></div>
|
|
80
80
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a35e3062c24a13ac4ed50729339408f65"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a35e3062c24a13ac4ed50729339408f65">SVF::IntervalValue::IntervalValue</a></div><div class="ttdeci">IntervalValue(u64_t lb, u64_t ub)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00116">IntervalValue.h:116</a></div></div>
|
|
81
|
-
<div class="ttc" id="namespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Substract IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
81
|
+
<div class="ttc" id="namespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Substract IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00463">IntervalValue.h:463</a></div></div>
|
|
82
82
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a8de8e78efcee26d74fe3d34c405dee0a"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a8de8e78efcee26d74fe3d34c405dee0a">SVF::IntervalValue::setValue</a></div><div class="ttdeci">void setValue(const NumericLiteral &lb, const NumericLiteral &ub)</div><div class="ttdoc">Set the lower bound. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00240">IntervalValue.h:240</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1NumericLiteral_html_a325e99ded5a026ecdae64004b9392f4a"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a325e99ded5a026ecdae64004b9392f4a">SVF::NumericLiteral::equal</a></div><div class="ttdeci">bool equal(const NumericLiteral &rhs) const</div><div class="ttdoc">Check two object is equal. </div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00118">NumericLiteral.h:118</a></div></div>
|
|
84
84
|
<div class="ttc" id="classSVF_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>
|
|
@@ -87,7 +87,7 @@ $(function() {
|
|
|
87
87
|
<div class="ttc" id="classSVF_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#l00279">IntervalValue.h:279</a></div></div>
|
|
88
88
|
<div class="ttc" id="classSVF_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 &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#l00286">IntervalValue.h:286</a></div></div>
|
|
89
89
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a3dba35c84607bd3ed4e62a90ae2799cf"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3dba35c84607bd3ed4e62a90ae2799cf">SVF::IntervalValue::is_infinite</a></div><div class="ttdeci">static bool is_infinite(const NumericLiteral &e)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00077">IntervalValue.h:77</a></div></div>
|
|
90
|
-
<div class="ttc" id="namespaceSVF_html_aeb5348e052254496cad4e036073c3941"><div class="ttname"><a href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941">SVF::operator &</a></div><div class="ttdeci">IntervalValue operator &(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
90
|
+
<div class="ttc" id="namespaceSVF_html_aeb5348e052254496cad4e036073c3941"><div class="ttname"><a href="namespaceSVF.html#aeb5348e052254496cad4e036073c3941">SVF::operator &</a></div><div class="ttdeci">IntervalValue operator &(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00775">IntervalValue.h:775</a></div></div>
|
|
91
91
|
<div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div></div>
|
|
92
92
|
<div class="ttc" id="classSVF_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#l00108">IntervalValue.h:108</a></div></div>
|
|
93
93
|
<div class="ttc" id="classSVF_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#l00112">IntervalValue.h:112</a></div></div>
|
|
@@ -95,17 +95,17 @@ $(function() {
|
|
|
95
95
|
<div class="ttc" id="classSVF_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#l00106">NumericLiteral.h:106</a></div></div>
|
|
96
96
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a78b5445006d765160bbcb4ae2e11bd8a"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a78b5445006d765160bbcb4ae2e11bd8a">SVF::IntervalValue::is_infinite</a></div><div class="ttdeci">bool is_infinite() const</div><div class="ttdoc">Return true if the IntervalValue is infinite IntervalValue. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00253">IntervalValue.h:253</a></div></div>
|
|
97
97
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_afcd424e419fe66750c47df21774bb22c"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#afcd424e419fe66750c47df21774bb22c">SVF::IntervalValue::~IntervalValue</a></div><div class="ttdeci">~IntervalValue() override=default</div><div class="ttdoc">Destructor. </div></div>
|
|
98
|
-
<div class="ttc" id="namespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
99
|
-
<div class="ttc" id="namespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator<<</a></div><div class="ttdeci">IntervalValue operator<<(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Left binary shift of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
98
|
+
<div class="ttc" id="namespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00802">IntervalValue.h:802</a></div></div>
|
|
99
|
+
<div class="ttc" id="namespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator<<</a></div><div class="ttdeci">IntervalValue operator<<(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Left binary shift of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00719">IntervalValue.h:719</a></div></div>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a0df07a2659cbf3a918de5b0d7c407264"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">SVF::IntervalValue::lb</a></div><div class="ttdeci">const NumericLiteral & lb() const</div><div class="ttdoc">Return the lower bound. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00214">IntervalValue.h:214</a></div></div>
|
|
101
|
-
<div class="ttc" id="namespaceSVF_html_aedd9d023a68dddd66314be63bb8e48d2"><div class="ttname"><a href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">SVF::operator></a></div><div class="ttdeci">IntervalValue operator>(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Greater than IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
101
|
+
<div class="ttc" id="namespaceSVF_html_aedd9d023a68dddd66314be63bb8e48d2"><div class="ttname"><a href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">SVF::operator></a></div><div class="ttdeci">IntervalValue operator>(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Greater than IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00564">IntervalValue.h:564</a></div></div>
|
|
102
102
|
<div class="ttc" id="classSVF_1_1NumericLiteral_html_a1f9d85a8fee78c9a5f9fd9e781a57952"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a1f9d85a8fee78c9a5f9fd9e781a57952">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">double getNumeral() const</div><div class="ttdoc">Return Numeral. </div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00112">NumericLiteral.h:112</a></div></div>
|
|
103
103
|
<div class="ttc" id="namespaceSVF_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#l00050">SVFType.h:50</a></div></div>
|
|
104
104
|
<div class="ttc" id="NumericLiteral_8h_html"><div class="ttname"><a href="NumericLiteral_8h.html">NumericLiteral.h</a></div></div>
|
|
105
105
|
<div class="ttc" id="classSVF_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#l00094">NumericLiteral.h:94</a></div></div>
|
|
106
|
-
<div class="ttc" id="namespaceSVF_html_a2f3ddba25bc972f70300128369e4cd1d"><div class="ttname"><a href="namespaceSVF.html#a2f3ddba25bc972f70300128369e4cd1d">SVF::operator%</a></div><div class="ttdeci">IntervalValue operator%(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Divide IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
106
|
+
<div class="ttc" id="namespaceSVF_html_a2f3ddba25bc972f70300128369e4cd1d"><div class="ttname"><a href="namespaceSVF.html#a2f3ddba25bc972f70300128369e4cd1d">SVF::operator%</a></div><div class="ttdeci">IntervalValue operator%(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Divide IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00524">IntervalValue.h:524</a></div></div>
|
|
107
107
|
<div class="ttc" id="cJSON_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>
|
|
108
|
-
<div class="ttc" id="namespaceSVF_html_ad9d56b31ab074c813b48da4c2e0742aa"><div class="ttname"><a href="namespaceSVF.html#ad9d56b31ab074c813b48da4c2e0742aa">SVF::operator+</a></div><div class="ttdeci">IntervalValue operator+(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Add IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
108
|
+
<div class="ttc" id="namespaceSVF_html_ad9d56b31ab074c813b48da4c2e0742aa"><div class="ttname"><a href="namespaceSVF.html#ad9d56b31ab074c813b48da4c2e0742aa">SVF::operator+</a></div><div class="ttdeci">IntervalValue operator+(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Add IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00445">IntervalValue.h:445</a></div></div>
|
|
109
109
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a970b85f66d80cfc8ca56a8846c921afa"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a970b85f66d80cfc8ca56a8846c921afa">SVF::IntervalValue::is_zero</a></div><div class="ttdeci">bool is_zero() const</div><div class="ttdoc">Return true if the IntervalValue is [0, 0]. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00247">IntervalValue.h:247</a></div></div>
|
|
110
110
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference< T >::type && move(T &&t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00657">SVFUtil.h:657</a></div></div>
|
|
111
111
|
<div class="ttc" id="classSVF_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>
|
|
@@ -115,10 +115,11 @@ $(function() {
|
|
|
115
115
|
<div class="ttc" id="classSVF_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 &other) const</div><div class="ttdoc">Equality comparison. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00322">IntervalValue.h:322</a></div></div>
|
|
116
116
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_adf3cae41adaeb62c3b5da19e81adbb5d"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adf3cae41adaeb62c3b5da19e81adbb5d">SVF::IntervalValue::setLb</a></div><div class="ttdeci">void setLb(const NumericLiteral &lb)</div><div class="ttdoc">Set the lower bound. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00228">IntervalValue.h:228</a></div></div>
|
|
117
117
|
<div class="ttc" id="classSVF_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 &rhs) const</div><div class="ttdoc">Less then or equal. </div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00124">NumericLiteral.h:124</a></div></div>
|
|
118
|
-
<div class="ttc" id="namespaceSVF_html_adeb418bb692b6b0c3498a24927e1068b"><div class="ttname"><a href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b">SVF::operator<</a></div><div class="ttdeci">IntervalValue operator<(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Greater than IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
119
|
-
<div class="ttc" id="namespaceSVF_html_abf0dfb872989751b13069f859ef408e1"><div class="ttname"><a href="namespaceSVF.html#abf0dfb872989751b13069f859ef408e1">SVF::operator*</a></div><div class="ttdeci">IntervalValue operator*(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Multiply IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
120
|
-
<div class="ttc" id="namespaceSVF_html_a08938c05911dac4ebd102adfafd14d24"><div class="ttname"><a href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24">SVF::operator>=</a></div><div class="ttdeci">IntervalValue operator>=(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Greater than IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
118
|
+
<div class="ttc" id="namespaceSVF_html_adeb418bb692b6b0c3498a24927e1068b"><div class="ttname"><a href="namespaceSVF.html#adeb418bb692b6b0c3498a24927e1068b">SVF::operator<</a></div><div class="ttdeci">IntervalValue operator<(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Greater than IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00602">IntervalValue.h:602</a></div></div>
|
|
119
|
+
<div class="ttc" id="namespaceSVF_html_abf0dfb872989751b13069f859ef408e1"><div class="ttname"><a href="namespaceSVF.html#abf0dfb872989751b13069f859ef408e1">SVF::operator*</a></div><div class="ttdeci">IntervalValue operator*(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Multiply IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00481">IntervalValue.h:481</a></div></div>
|
|
120
|
+
<div class="ttc" id="namespaceSVF_html_a08938c05911dac4ebd102adfafd14d24"><div class="ttname"><a href="namespaceSVF.html#a08938c05911dac4ebd102adfafd14d24">SVF::operator>=</a></div><div class="ttdeci">IntervalValue operator>=(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Greater than IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00641">IntervalValue.h:641</a></div></div>
|
|
121
121
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a43f48c744f7bda0dc689b8f186449371"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a43f48c744f7bda0dc689b8f186449371">SVF::IntervalValue::minus_infinity</a></div><div class="ttdeci">static NumericLiteral minus_infinity()</div><div class="ttdoc">Get minus infinity -oo. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00066">IntervalValue.h:66</a></div></div>
|
|
122
|
+
<div class="ttc" id="classSVF_1_1IntervalValue_html_af5ee3e3b58d9661217ab6f08ffb98bbd"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#af5ee3e3b58d9661217ab6f08ffb98bbd">SVF::IntervalValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00437">IntervalValue.h:437</a></div></div>
|
|
122
123
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a101633c38e284f6e2bcad852daa3baae"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a101633c38e284f6e2bcad852daa3baae">SVF::IntervalValue::classof</a></div><div class="ttdeci">static bool classof(const IntervalValue *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00202">IntervalValue.h:202</a></div></div>
|
|
123
124
|
<div class="ttc" id="classSVF_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>
|
|
124
125
|
<div class="ttc" id="classSVF_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 &rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00141">NumericLiteral.h:141</a></div></div>
|
|
@@ -127,15 +128,15 @@ $(function() {
|
|
|
127
128
|
<div class="ttc" id="classSVF_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>
|
|
128
129
|
<div class="ttc" id="classSVF_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 &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#l00304">IntervalValue.h:304</a></div></div>
|
|
129
130
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdoc">Return the upper bound. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00221">IntervalValue.h:221</a></div></div>
|
|
130
|
-
<div class="ttc" id="namespaceSVF_html_a1dab362b7d3da3375b60c94e78275293"><div class="ttname"><a href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293">SVF::operator<=</a></div><div class="ttdeci">IntervalValue operator<=(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Greater than IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
131
|
+
<div class="ttc" id="namespaceSVF_html_a1dab362b7d3da3375b60c94e78275293"><div class="ttname"><a href="namespaceSVF.html#a1dab362b7d3da3375b60c94e78275293">SVF::operator<=</a></div><div class="ttdeci">IntervalValue operator<=(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Greater than IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00680">IntervalValue.h:680</a></div></div>
|
|
131
132
|
<div class="ttc" id="classSVF_1_1AbstractValue_html_afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a"><div class="ttname"><a href="classSVF_1_1AbstractValue.html#afc79860ce75455825ff75d1fef804c16ae3efe972f0ed2983803d380f57e2546a">SVF::AbstractValue::IntervalK</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00051">AbstractValue.h:51</a></div></div>
|
|
132
133
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_afcb91d48a79aeba3c78c1a41b0730a73"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#afcb91d48a79aeba3c78c1a41b0730a73">SVF::IntervalValue::contains</a></div><div class="ttdeci">bool contains(int n) const</div><div class="ttdoc">Return true if the IntervalValue contains n. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00420">IntervalValue.h:420</a></div></div>
|
|
133
134
|
<div class="ttc" id="cJSON_8cpp_html_a8a1a0a26c50cc4becfc754bb68d1dc6b"><div class="ttname"><a href="cJSON_8cpp.html#a8a1a0a26c50cc4becfc754bb68d1dc6b">a</a></div><div class="ttdeci">cJSON * a</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02560">cJSON.cpp:2560</a></div></div>
|
|
134
135
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_ac763bab0b6fedbe5ec5b345c7b260e30"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#ac763bab0b6fedbe5ec5b345c7b260e30">SVF::IntervalValue::set_to_bottom</a></div><div class="ttdeci">void set_to_bottom()</div><div class="ttdoc">Set current IntervalValue as bottom. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00272">IntervalValue.h:272</a></div></div>
|
|
135
136
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a977128211266b93e58e298a7ac29a059"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">SVF::IntervalValue::isTop</a></div><div class="ttdeci">bool isTop() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00055">IntervalValue.h:55</a></div></div>
|
|
136
|
-
<div class="ttc" id="namespaceSVF_html_a8803e977797624599af5b0a84fe1de3d"><div class="ttname"><a href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d">SVF::operator^</a></div><div class="ttdeci">IntervalValue operator^(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Bitwise XOR of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
137
|
+
<div class="ttc" id="namespaceSVF_html_a8803e977797624599af5b0a84fe1de3d"><div class="ttname"><a href="namespaceSVF.html#a8803e977797624599af5b0a84fe1de3d">SVF::operator^</a></div><div class="ttdeci">IntervalValue operator^(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Bitwise XOR of IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00831">IntervalValue.h:831</a></div></div>
|
|
137
138
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00037">AbstractValue.h:37</a></div></div>
|
|
138
|
-
<div class="ttc" id="namespaceSVF_html_a23c136994bc83222e1913d43ec3e7468"><div class="ttname"><a href="namespaceSVF.html#a23c136994bc83222e1913d43ec3e7468">SVF::operator/</a></div><div class="ttdeci">IntervalValue operator/(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Divide IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#
|
|
139
|
+
<div class="ttc" id="namespaceSVF_html_a23c136994bc83222e1913d43ec3e7468"><div class="ttname"><a href="namespaceSVF.html#a23c136994bc83222e1913d43ec3e7468">SVF::operator/</a></div><div class="ttdeci">IntervalValue operator/(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Divide IntervalValues. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00500">IntervalValue.h:500</a></div></div>
|
|
139
140
|
<div class="ttc" id="AbstractValue_8h_html"><div class="ttname"><a href="AbstractValue_8h.html">AbstractValue.h</a></div></div>
|
|
140
141
|
<div class="ttc" id="classSVF_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>
|
|
141
142
|
<div class="ttc" id="classSVF_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="ttdoc">Create the IntervalValue [n, n]. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00098">IntervalValue.h:98</a></div></div>
|
|
@@ -146,6 +147,7 @@ $(function() {
|
|
|
146
147
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a6c175067e5573ae7180ae4d872c49c8f"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a6c175067e5573ae7180ae4d872c49c8f">SVF::IntervalValue::narrow_with</a></div><div class="ttdeci">void narrow_with(const IntervalValue &other)</div><div class="ttdoc">Current IntervalValue narrow with another IntervalValue. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00386">IntervalValue.h:386</a></div></div>
|
|
147
148
|
<div class="ttc" id="classSVF_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 &ub)</div><div class="ttdoc">Set the upper bound. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00234">IntervalValue.h:234</a></div></div>
|
|
148
149
|
<div class="ttc" id="classSVF_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>
|
|
150
|
+
<div class="ttc" id="cJSON_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>
|
|
149
151
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a2f2121ab7e99c9057b1855f355dd0d4b"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a2f2121ab7e99c9057b1855f355dd0d4b">SVF::IntervalValue::operator=</a></div><div class="ttdeci">IntervalValue & operator=(const IntervalValue &a) noexcept=default</div><div class="ttdoc">Copy assignment operator. </div></div>
|
|
150
152
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_a3ac2a92a9d67dec907fa7ae4181dc171"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3ac2a92a9d67dec907fa7ae4181dc171">SVF::IntervalValue::operator==</a></div><div class="ttdeci">IntervalValue operator==(const IntervalValue &other) const</div><div class="ttdoc">Equality comparison. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00131">IntervalValue.h:131</a></div></div>
|
|
151
153
|
<div class="ttc" id="classSVF_1_1IntervalValue_html_afdd64a5e008ec06b346db178b9d02454"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#afdd64a5e008ec06b346db178b9d02454">SVF::IntervalValue::getNumeral</a></div><div class="ttdeci">double getNumeral() const</div><div class="ttdoc">Return. </div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00259">IntervalValue.h:259</a></div></div>
|