svf-tools 1.0.905 → 1.0.907
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/AbstractInterpretation_8cpp.html +217 -0
- package/SVF-doxygen/html/AbstractInterpretation_8cpp_source.html +2093 -0
- package/SVF-doxygen/html/AbstractInterpretation_8h.html +115 -0
- package/SVF-doxygen/html/AbstractInterpretation_8h_source.html +459 -0
- package/SVF-doxygen/html/AbstractState_8cpp.html +84 -0
- package/SVF-doxygen/html/AbstractState_8cpp_source.html +461 -0
- package/SVF-doxygen/html/AbstractState_8h.html +105 -0
- package/SVF-doxygen/html/AbstractState_8h_source.html +891 -0
- package/SVF-doxygen/html/AbstractValue_8h.html +3 -3
- package/SVF-doxygen/html/AbstractValue_8h_source.html +652 -62
- package/SVF-doxygen/html/AddressValue_8h.html +4 -4
- package/SVF-doxygen/html/AddressValue_8h_source.html +180 -177
- package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +782 -776
- package/SVF-doxygen/html/BufOverflowChecker_8h.html +1 -1
- package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +19 -19
- package/SVF-doxygen/html/CFLGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/CSC_8h_source.html +1 -1
- package/SVF-doxygen/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ConsExeState_8h_source.html +2 -2
- package/SVF-doxygen/html/ExeState_8cpp.html +1 -1
- package/SVF-doxygen/html/ExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/ExeState_8h_source.html +8 -8
- package/SVF-doxygen/html/ICFGSimplification_8h.html +2 -2
- package/SVF-doxygen/html/ICFGSimplification_8h_source.html +17 -18
- package/SVF-doxygen/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/IntervalValue_8h.html +2 -2
- package/SVF-doxygen/html/IntervalValue_8h_source.html +846 -864
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointsTo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/PointsTo_8h_source.html +3 -3
- package/SVF-doxygen/html/RelExeState_8h_source.html +5 -5
- package/SVF-doxygen/html/RelationSolver_8cpp_source.html +67 -68
- package/SVF-doxygen/html/RelationSolver_8h.html +1 -1
- package/SVF-doxygen/html/RelationSolver_8h_source.html +17 -17
- package/SVF-doxygen/html/SVFIR2AbsState_8cpp.html +84 -0
- package/SVF-doxygen/html/SVFIR2AbsState_8cpp_source.html +1348 -0
- package/SVF-doxygen/html/SVFIR2AbsState_8h.html +100 -0
- package/SVF-doxygen/html/SVFIR2AbsState_8h_source.html +378 -0
- package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +9 -8
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +920 -952
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h.html +2 -3
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +202 -207
- package/SVF-doxygen/html/SVFIR2Relation_8cpp.html +1 -1
- package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +76 -72
- package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFType_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
- package/SVF-doxygen/html/SparseBitVector_8h_source.html +3 -3
- package/SVF-doxygen/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/ae_8cpp.html +57 -57
- package/SVF-doxygen/html/ae_8cpp_source.html +462 -466
- package/SVF-doxygen/html/annotated.html +409 -418
- package/SVF-doxygen/html/classSVF_1_1AEStat-members.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1AEStat.html +184 -190
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation-members.html +161 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.html +4325 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractState-members.html +134 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractState.html +2166 -0
- package/SVF-doxygen/html/classSVF_1_1AbstractState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1AddressValue-members.html +15 -28
- package/SVF-doxygen/html/classSVF_1_1AddressValue.html +171 -230
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +0 -1
- package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +73 -73
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +578 -574
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1CFLNode-members.html +48 -49
- package/SVF-doxygen/html/classSVF_1_1CFLNode.html +25 -25
- package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ExeState.html +12 -14
- package/SVF-doxygen/html/classSVF_1_1ExeState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1FILOWorkList.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1GenericNode.html +22 -8
- package/SVF-doxygen/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1ICFGSimplification.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1IntervalValue-members.html +50 -64
- package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +349 -459
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RelExeState-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RelExeState.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +8 -8
- package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +106 -107
- package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState-members.html +141 -0
- package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState.html +3137 -0
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +56 -57
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1128 -1178
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SparseAbstractState-members.html +157 -0
- package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.html +1512 -0
- package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +0 -1
- package/SVF-doxygen/html/classSVF_1_1Z3Expr.png +0 -0
- package/SVF-doxygen/html/classSymblicAbstractionTest-members.html +3 -3
- package/SVF-doxygen/html/classSymblicAbstractionTest.html +400 -404
- package/SVF-doxygen/html/classes.html +326 -336
- package/SVF-doxygen/html/dir_2c6fb801affc4b3efe6e1ed5974683f6.html +2 -10
- package/SVF-doxygen/html/dir_81caa96ab1d3de93b353e2bbe80e6067.html +2 -4
- package/SVF-doxygen/html/dir_9a8e7a56f4029a0d9f62b1c6d1f6e85b.html +2 -8
- package/SVF-doxygen/html/dir_fbec400583b4bd6c5f2e89c86c5943a6.html +2 -4
- package/SVF-doxygen/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
- package/SVF-doxygen/html/files.html +18 -27
- package/SVF-doxygen/html/functions.html +33 -56
- package/SVF-doxygen/html/functions_a.html +29 -42
- package/SVF-doxygen/html/functions_b.html +14 -21
- package/SVF-doxygen/html/functions_c.html +42 -52
- package/SVF-doxygen/html/functions_d.html +7 -4
- package/SVF-doxygen/html/functions_e.html +7 -21
- package/SVF-doxygen/html/functions_enum.html +4 -7
- package/SVF-doxygen/html/functions_eval.html +2 -2
- package/SVF-doxygen/html/functions_eval_c.html +0 -3
- package/SVF-doxygen/html/functions_eval_i.html +2 -3
- package/SVF-doxygen/html/functions_eval_m.html +2 -2
- package/SVF-doxygen/html/functions_eval_s.html +2 -5
- package/SVF-doxygen/html/functions_eval_u.html +4 -1
- package/SVF-doxygen/html/functions_f.html +6 -6
- package/SVF-doxygen/html/functions_func.html +24 -31
- package/SVF-doxygen/html/functions_func_b.html +10 -16
- package/SVF-doxygen/html/functions_func_c.html +30 -39
- package/SVF-doxygen/html/functions_func_d.html +1 -1
- package/SVF-doxygen/html/functions_func_e.html +7 -17
- package/SVF-doxygen/html/functions_func_g.html +61 -115
- package/SVF-doxygen/html/functions_func_h.html +22 -24
- package/SVF-doxygen/html/functions_func_i.html +64 -94
- package/SVF-doxygen/html/functions_func_j.html +4 -6
- package/SVF-doxygen/html/functions_func_l.html +9 -23
- package/SVF-doxygen/html/functions_func_m.html +7 -8
- package/SVF-doxygen/html/functions_func_n.html +8 -13
- package/SVF-doxygen/html/functions_func_o.html +57 -48
- package/SVF-doxygen/html/functions_func_p.html +6 -11
- package/SVF-doxygen/html/functions_func_r.html +4 -4
- package/SVF-doxygen/html/functions_func_s.html +35 -50
- package/SVF-doxygen/html/functions_func_t.html +26 -40
- package/SVF-doxygen/html/functions_func_u.html +6 -5
- package/SVF-doxygen/html/functions_func_v.html +2 -9
- package/SVF-doxygen/html/functions_func_w.html +9 -8
- package/SVF-doxygen/html/functions_func_z.html +1 -2
- package/SVF-doxygen/html/functions_func_~.html +10 -22
- package/SVF-doxygen/html/functions_g.html +61 -118
- package/SVF-doxygen/html/functions_h.html +21 -23
- package/SVF-doxygen/html/functions_i.html +76 -106
- package/SVF-doxygen/html/functions_j.html +4 -6
- package/SVF-doxygen/html/functions_k.html +0 -6
- package/SVF-doxygen/html/functions_l.html +11 -25
- package/SVF-doxygen/html/functions_m.html +8 -9
- package/SVF-doxygen/html/functions_n.html +14 -17
- package/SVF-doxygen/html/functions_o.html +71 -90
- package/SVF-doxygen/html/functions_p.html +31 -30
- package/SVF-doxygen/html/functions_r.html +11 -15
- package/SVF-doxygen/html/functions_rela.html +2 -3
- package/SVF-doxygen/html/functions_rela_b.html +0 -1
- package/SVF-doxygen/html/functions_rela_e.html +0 -1
- package/SVF-doxygen/html/functions_rela_i.html +0 -2
- package/SVF-doxygen/html/functions_rela_l.html +0 -1
- package/SVF-doxygen/html/functions_rela_o.html +0 -18
- package/SVF-doxygen/html/functions_rela_r.html +2 -2
- package/SVF-doxygen/html/functions_rela_s.html +4 -9
- package/SVF-doxygen/html/functions_s.html +45 -70
- package/SVF-doxygen/html/functions_t.html +29 -45
- package/SVF-doxygen/html/functions_type.html +0 -5
- package/SVF-doxygen/html/functions_type_c.html +1 -1
- package/SVF-doxygen/html/functions_type_k.html +0 -6
- package/SVF-doxygen/html/functions_type_l.html +4 -3
- package/SVF-doxygen/html/functions_type_t.html +0 -3
- package/SVF-doxygen/html/functions_type_v.html +3 -5
- package/SVF-doxygen/html/functions_u.html +8 -4
- package/SVF-doxygen/html/functions_v.html +11 -20
- package/SVF-doxygen/html/functions_vars.html +33 -56
- package/SVF-doxygen/html/functions_vars_a.html +3 -0
- package/SVF-doxygen/html/functions_vars_g.html +2 -5
- package/SVF-doxygen/html/functions_vars_i.html +3 -0
- package/SVF-doxygen/html/functions_vars_t.html +1 -0
- package/SVF-doxygen/html/functions_w.html +11 -10
- package/SVF-doxygen/html/functions_z.html +1 -2
- package/SVF-doxygen/html/functions_~.html +10 -22
- package/SVF-doxygen/html/globals.html +2 -2
- package/SVF-doxygen/html/globals_defs.html +1 -4
- package/SVF-doxygen/html/globals_n.html +2 -5
- package/SVF-doxygen/html/globals_s.html +1 -1
- package/SVF-doxygen/html/globals_vars.html +5 -5
- package/SVF-doxygen/html/globals_z.html +3 -3
- package/SVF-doxygen/html/hierarchy.html +622 -631
- package/SVF-doxygen/html/namespaceSVF.html +449 -458
- package/SVF-doxygen/html/search/all_0.js +155 -161
- package/SVF-doxygen/html/search/all_1.js +502 -503
- package/SVF-doxygen/html/search/all_10.js +325 -326
- package/SVF-doxygen/html/search/all_11.js +227 -227
- package/SVF-doxygen/html/search/all_12.js +563 -574
- package/SVF-doxygen/html/search/all_13.js +206 -208
- package/SVF-doxygen/html/search/all_14.js +74 -73
- package/SVF-doxygen/html/search/all_15.js +175 -176
- package/SVF-doxygen/html/search/all_16.js +77 -77
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +27 -27
- package/SVF-doxygen/html/search/all_1a.js +175 -179
- package/SVF-doxygen/html/search/all_2.js +180 -182
- package/SVF-doxygen/html/search/all_3.js +636 -642
- package/SVF-doxygen/html/search/all_4.js +237 -236
- package/SVF-doxygen/html/search/all_5.js +120 -126
- package/SVF-doxygen/html/search/all_6.js +236 -236
- package/SVF-doxygen/html/search/all_7.js +1040 -1056
- package/SVF-doxygen/html/search/all_8.js +211 -215
- package/SVF-doxygen/html/search/all_9.js +631 -638
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +24 -26
- package/SVF-doxygen/html/search/all_c.js +113 -115
- package/SVF-doxygen/html/search/all_d.js +205 -205
- package/SVF-doxygen/html/search/all_e.js +207 -209
- package/SVF-doxygen/html/search/all_f.js +122 -122
- package/SVF-doxygen/html/search/classes_0.js +29 -28
- package/SVF-doxygen/html/search/classes_1.js +11 -11
- package/SVF-doxygen/html/search/classes_10.js +72 -74
- package/SVF-doxygen/html/search/classes_11.js +14 -14
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +19 -19
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +72 -73
- package/SVF-doxygen/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/search/classes_4.js +7 -8
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/search/classes_7.js +34 -38
- package/SVF-doxygen/html/search/classes_8.js +57 -59
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +19 -19
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +3 -3
- package/SVF-doxygen/html/search/defines_10.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -4
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +8 -8
- package/SVF-doxygen/html/search/defines_f.js +4 -4
- package/SVF-doxygen/html/search/enums_0.js +3 -4
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +9 -9
- package/SVF-doxygen/html/search/enums_3.js +2 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -4
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
- package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_11.js +6 -5
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -37
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +48 -49
- package/SVF-doxygen/html/search/files_0.js +18 -16
- package/SVF-doxygen/html/search/files_1.js +9 -9
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +51 -53
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +3 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +10 -10
- package/SVF-doxygen/html/search/files_7.js +15 -17
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +4 -4
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +57 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +366 -368
- package/SVF-doxygen/html/search/functions_10.js +139 -140
- package/SVF-doxygen/html/search/functions_11.js +140 -140
- package/SVF-doxygen/html/search/functions_12.js +294 -299
- package/SVF-doxygen/html/search/functions_13.js +72 -73
- package/SVF-doxygen/html/search/functions_14.js +41 -41
- package/SVF-doxygen/html/search/functions_15.js +70 -72
- package/SVF-doxygen/html/search/functions_16.js +38 -38
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +175 -179
- package/SVF-doxygen/html/search/functions_2.js +92 -94
- package/SVF-doxygen/html/search/functions_3.js +258 -261
- package/SVF-doxygen/html/search/functions_4.js +85 -85
- package/SVF-doxygen/html/search/functions_5.js +54 -57
- package/SVF-doxygen/html/search/functions_6.js +65 -65
- package/SVF-doxygen/html/search/functions_7.js +857 -872
- package/SVF-doxygen/html/search/functions_8.js +162 -162
- package/SVF-doxygen/html/search/functions_9.js +440 -446
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +22 -25
- package/SVF-doxygen/html/search/functions_d.js +82 -82
- package/SVF-doxygen/html/search/functions_e.js +34 -36
- package/SVF-doxygen/html/search/functions_f.js +58 -58
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +4 -4
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +5 -5
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +11 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +18 -19
- package/SVF-doxygen/html/search/typedefs_1.js +27 -27
- package/SVF-doxygen/html/search/typedefs_10.js +65 -65
- package/SVF-doxygen/html/search/typedefs_11.js +12 -13
- package/SVF-doxygen/html/search/typedefs_12.js +13 -13
- package/SVF-doxygen/html/search/typedefs_13.js +40 -40
- package/SVF-doxygen/html/search/typedefs_14.js +11 -11
- package/SVF-doxygen/html/search/typedefs_2.js +125 -125
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +42 -42
- package/SVF-doxygen/html/search/typedefs_6.js +54 -54
- package/SVF-doxygen/html/search/typedefs_7.js +47 -47
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +4 -6
- package/SVF-doxygen/html/search/typedefs_a.js +30 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +171 -177
- package/SVF-doxygen/html/search/variables_1.js +78 -77
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +47 -47
- package/SVF-doxygen/html/search/variables_12.js +93 -93
- package/SVF-doxygen/html/search/variables_13.js +76 -76
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +11 -11
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +17 -17
- package/SVF-doxygen/html/search/variables_2.js +40 -40
- package/SVF-doxygen/html/search/variables_3.js +143 -143
- package/SVF-doxygen/html/search/variables_4.js +51 -51
- package/SVF-doxygen/html/search/variables_5.js +39 -39
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +33 -34
- package/SVF-doxygen/html/search/variables_8.js +8 -8
- package/SVF-doxygen/html/search/variables_9.js +80 -79
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +44 -44
- package/SVF-doxygen/html/search/variables_d.js +58 -58
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +31 -31
- package/SVF-doxygen/html/structSVF_1_1AbstractValue-members.html +164 -0
- package/SVF-doxygen/html/structSVF_1_1AbstractValue.html +2820 -0
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4-members.html +84 -0
- package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4.html +130 -0
- package/SVF-doxygen/html/svf-ex_8cpp.html +25 -25
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +26 -26
- package/package.json +1 -1
- package/svf/include/AE/Core/AbstractState.h +749 -0
- package/svf/include/AE/Core/AbstractValue.h +514 -39
- package/svf/include/AE/Core/AddressValue.h +32 -25
- package/svf/include/AE/Core/IntervalValue.h +10 -24
- package/svf/include/AE/Core/RelExeState.h +1 -1
- package/svf/include/AE/Core/RelationSolver.h +9 -9
- package/svf/include/AE/Svfexe/{AbstractExecution.h → AbstractInterpretation.h} +27 -26
- package/svf/include/AE/Svfexe/BufOverflowChecker.h +5 -5
- package/svf/include/AE/Svfexe/ICFGSimplification.h +1 -2
- package/svf/include/AE/Svfexe/{SVFIR2ItvExeState.h → SVFIR2AbsState.h} +30 -33
- package/svf/lib/AE/Core/AbstractState.cpp +357 -0
- package/svf/lib/AE/Core/RelationSolver.cpp +31 -31
- package/svf/lib/AE/Core/SVFIR2Relation.cpp +17 -16
- package/svf/lib/AE/Svfexe/{AbstractExecution.cpp → AbstractInterpretation.cpp} +166 -156
- package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +51 -47
- package/svf/lib/AE/Svfexe/{SVFIR2ItvExeState.cpp → SVFIR2AbsState.cpp} +211 -247
- package/svf-llvm/tools/AE/ae.cpp +105 -108
- package/svf-llvm/tools/Example/svf-ex.cpp +2 -2
- package/svf/include/AE/Core/ConsExeState.h +0 -453
- package/svf/include/AE/Core/ExeState.h +0 -304
- package/svf/include/AE/Core/IntervalExeState.h +0 -650
- package/svf/include/AE/Core/SingleAbsValue.h +0 -477
- package/svf/include/AE/Core/SymState.h +0 -221
- package/svf/include/AE/Svfexe/SVFIR2ConsExeState.h +0 -148
- package/svf/lib/AE/Core/ConsExeState.cpp +0 -603
- package/svf/lib/AE/Core/ExeState.cpp +0 -117
- package/svf/lib/AE/Core/IntervalExeState.cpp +0 -329
- package/svf/lib/AE/Core/SymState.cpp +0 -37
- package/svf/lib/AE/Svfexe/SVFIR2ConsExeState.cpp +0 -772
|
@@ -90,9 +90,12 @@ Namespaces</h2></td></tr>
|
|
|
90
90
|
</table><table class="memberdecls">
|
|
91
91
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
|
92
92
|
Classes</h2></td></tr>
|
|
93
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="
|
|
93
|
+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AbstractInterpretation.html">AbstractInterpretation</a></td></tr>
|
|
94
|
+
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classSVF_1_1AbstractInterpretation.html" title="AbstractInterpretation is same as Abstract Execution.">AbstractInterpretation</a> is same as Abstract Execution. <a href="classSVF_1_1AbstractInterpretation.html#details">More...</a><br /></td></tr>
|
|
94
95
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
95
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="
|
|
96
|
+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AbstractState.html">AbstractState</a></td></tr>
|
|
97
|
+
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
98
|
+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structSVF_1_1AbstractValue.html">AbstractValue</a></td></tr>
|
|
96
99
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
97
100
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AccessPath.html">AccessPath</a></td></tr>
|
|
98
101
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -238,8 +241,6 @@ Classes</h2></td></tr>
|
|
|
238
241
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
239
242
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondVar.html">CondVar</a></td></tr>
|
|
240
243
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
241
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ConsExeState.html">ConsExeState</a></td></tr>
|
|
242
|
-
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
243
244
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a></td></tr>
|
|
244
245
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
245
246
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a></td></tr>
|
|
@@ -335,8 +336,6 @@ Classes</h2></td></tr>
|
|
|
335
336
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
336
337
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1EntryCHI.html">EntryCHI</a></td></tr>
|
|
337
338
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
338
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExeState.html">ExeState</a></td></tr>
|
|
339
|
-
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
340
339
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html">ExtAPI</a></td></tr>
|
|
341
340
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
342
341
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a></td></tr>
|
|
@@ -541,10 +540,6 @@ Classes</h2></td></tr>
|
|
|
541
540
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
542
541
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1InterPHIVFGNode.html">InterPHIVFGNode</a></td></tr>
|
|
543
542
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
544
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1IntervalESBase.html">IntervalESBase</a></td></tr>
|
|
545
|
-
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
546
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a></td></tr>
|
|
547
|
-
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
548
543
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1IntervalValue.html">IntervalValue</a></td></tr>
|
|
549
544
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
550
545
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a></td></tr>
|
|
@@ -776,7 +771,7 @@ Classes</h2></td></tr>
|
|
|
776
771
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
777
772
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SelectStmt.html">SelectStmt</a></td></tr>
|
|
778
773
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
779
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="
|
|
774
|
+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SparseAbstractState.html">SparseAbstractState</a></td></tr>
|
|
780
775
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
781
776
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SparseBitVector.html">SparseBitVector</a></td></tr>
|
|
782
777
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -848,9 +843,7 @@ Classes</h2></td></tr>
|
|
|
848
843
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
849
844
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a></td></tr>
|
|
850
845
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
851
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="
|
|
852
|
-
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
853
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html">SVFIR2ItvExeState</a></td></tr>
|
|
846
|
+
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2AbsState.html">SVFIR2AbsState</a></td></tr>
|
|
854
847
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
855
848
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a></td></tr>
|
|
856
849
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -896,8 +889,6 @@ Classes</h2></td></tr>
|
|
|
896
889
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
897
890
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SymbolTableInfoReader.html">SymbolTableInfoReader</a></td></tr>
|
|
898
891
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
899
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SymState.html">SymState</a></td></tr>
|
|
900
|
-
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
901
892
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1TCT.html">TCT</a></td></tr>
|
|
902
893
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
903
894
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1TCTEdge.html">TCTEdge</a></td></tr>
|
|
@@ -5322,11 +5313,11 @@ template<typename Key , typename Hash = Hash<Key>, typename KeyEqual
|
|
|
5322
5313
|
<tr><td class="fieldname"><a id="a41375daa7cc99317d0aa2a21dc643b88aa5aa2ddadb5f0392b52dcbe487fe0ecd"></a>BufOverflowChecker </td><td class="fielddoc"></td></tr>
|
|
5323
5314
|
</table>
|
|
5324
5315
|
|
|
5325
|
-
<p class="definition">Definition at line <a class="el" href="
|
|
5326
|
-
<div class="fragment"><div class="line"><a name="
|
|
5327
|
-
<div class="line"><a name="
|
|
5328
|
-
<div class="line"><a name="
|
|
5329
|
-
<div class="line"><a name="
|
|
5316
|
+
<p class="definition">Definition at line <a class="el" href="AbstractInterpretation_8h_source.html#l00044">44</a> of file <a class="el" href="AbstractInterpretation_8h_source.html">AbstractInterpretation.h</a>.</p>
|
|
5317
|
+
<div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div>
|
|
5318
|
+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="namespaceSVF.html#a41375daa7cc99317d0aa2a21dc643b88a53d18d0ea8b11173db3d2f60f838ffe1">AbstractExecution</a>,</div>
|
|
5319
|
+
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="namespaceSVF.html#a41375daa7cc99317d0aa2a21dc643b88aa5aa2ddadb5f0392b52dcbe487fe0ecd">BufOverflowChecker</a>,</div>
|
|
5320
|
+
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> };</div>
|
|
5330
5321
|
</div><!-- fragment -->
|
|
5331
5322
|
</div>
|
|
5332
5323
|
</div>
|
|
@@ -7133,43 +7124,43 @@ template<class GraphType > </div>
|
|
|
7133
7124
|
|
|
7134
7125
|
<p>Divide IntervalValues. </p>
|
|
7135
7126
|
|
|
7136
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
7137
|
-
<div class="fragment"><div class="line"><a name="
|
|
7138
|
-
<div class="line"><a name="
|
|
7139
|
-
<div class="line"><a name="
|
|
7140
|
-
<div class="line"><a name="
|
|
7141
|
-
<div class="line"><a name="
|
|
7142
|
-
<div class="line"><a name="
|
|
7143
|
-
<div class="line"><a name="
|
|
7144
|
-
<div class="line"><a name="
|
|
7145
|
-
<div class="line"><a name="
|
|
7146
|
-
<div class="line"><a name="
|
|
7147
|
-
<div class="line"><a name="
|
|
7148
|
-
<div class="line"><a name="
|
|
7149
|
-
<div class="line"><a name="
|
|
7150
|
-
<div class="line"><a name="
|
|
7151
|
-
<div class="line"><a name="
|
|
7152
|
-
<div class="line"><a name="
|
|
7153
|
-
<div class="line"><a name="
|
|
7154
|
-
<div class="line"><a name="
|
|
7155
|
-
<div class="line"><a name="
|
|
7156
|
-
<div class="line"><a name="
|
|
7157
|
-
<div class="line"><a name="
|
|
7158
|
-
<div class="line"><a name="
|
|
7159
|
-
<div class="line"><a name="
|
|
7160
|
-
<div class="line"><a name="
|
|
7161
|
-
<div class="line"><a name="
|
|
7162
|
-
<div class="line"><a name="
|
|
7163
|
-
<div class="line"><a name="
|
|
7164
|
-
<div class="line"><a name="
|
|
7165
|
-
<div class="line"><a name="
|
|
7166
|
-
<div class="line"><a name="
|
|
7167
|
-
<div class="line"><a name="
|
|
7168
|
-
<div class="line"><a name="
|
|
7169
|
-
<div class="line"><a name="
|
|
7170
|
-
<div class="line"><a name="
|
|
7171
|
-
<div class="line"><a name="
|
|
7172
|
-
<div class="line"><a name="
|
|
7127
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00579">579</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
7128
|
+
<div class="fragment"><div class="line"><a name="l00581"></a><span class="lineno"> 581</span> {</div>
|
|
7129
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
7130
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  {</div>
|
|
7131
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
7132
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div>
|
|
7133
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.contains(0))</div>
|
|
7134
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  {</div>
|
|
7135
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keywordflow">return</span> lhs.is_zero() ? IntervalValue(0, 0) : IntervalValue::top();</div>
|
|
7136
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  }</div>
|
|
7137
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
7138
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  {</div>
|
|
7139
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">return</span> IntervalValue(lhs.lb() % rhs.lb(), lhs.lb() % rhs.lb());</div>
|
|
7140
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div>
|
|
7141
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">else</span></div>
|
|
7142
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  {</div>
|
|
7143
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  NumericLiteral n_ub = max(abs(lhs.lb()), abs(lhs.ub()));</div>
|
|
7144
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  NumericLiteral d_ub = max(abs(rhs.lb()), rhs.ub()) - 1;</div>
|
|
7145
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  NumericLiteral ub = min(n_ub, d_ub);</div>
|
|
7146
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  </div>
|
|
7147
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">if</span> (lhs.lb().getNumeral() < 0)</div>
|
|
7148
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  {</div>
|
|
7149
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">if</span> (lhs.ub().getNumeral() > 0)</div>
|
|
7150
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  {</div>
|
|
7151
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">return</span> IntervalValue(-ub, ub);</div>
|
|
7152
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  }</div>
|
|
7153
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">else</span></div>
|
|
7154
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div>
|
|
7155
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">return</span> IntervalValue(-ub, 0);</div>
|
|
7156
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div>
|
|
7157
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  }</div>
|
|
7158
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">else</span></div>
|
|
7159
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  {</div>
|
|
7160
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">return</span> IntervalValue(0, ub);</div>
|
|
7161
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  }</div>
|
|
7162
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  }</div>
|
|
7163
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> }</div>
|
|
7173
7164
|
</div><!-- fragment -->
|
|
7174
7165
|
</div>
|
|
7175
7166
|
</div>
|
|
@@ -7209,31 +7200,31 @@ template<class GraphType > </div>
|
|
|
7209
7200
|
|
|
7210
7201
|
<p>Bitwise AND of IntervalValues. </p>
|
|
7211
7202
|
|
|
7212
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
7213
|
-
<div class="fragment"><div class="line"><a name="
|
|
7214
|
-
<div class="line"><a name="
|
|
7215
|
-
<div class="line"><a name="
|
|
7216
|
-
<div class="line"><a name="
|
|
7217
|
-
<div class="line"><a name="
|
|
7218
|
-
<div class="line"><a name="
|
|
7219
|
-
<div class="line"><a name="
|
|
7220
|
-
<div class="line"><a name="
|
|
7221
|
-
<div class="line"><a name="
|
|
7222
|
-
<div class="line"><a name="
|
|
7223
|
-
<div class="line"><a name="
|
|
7224
|
-
<div class="line"><a name="
|
|
7225
|
-
<div class="line"><a name="
|
|
7226
|
-
<div class="line"><a name="
|
|
7227
|
-
<div class="line"><a name="
|
|
7228
|
-
<div class="line"><a name="
|
|
7229
|
-
<div class="line"><a name="
|
|
7230
|
-
<div class="line"><a name="
|
|
7231
|
-
<div class="line"><a name="
|
|
7232
|
-
<div class="line"><a name="
|
|
7233
|
-
<div class="line"><a name="
|
|
7234
|
-
<div class="line"><a name="
|
|
7235
|
-
<div class="line"><a name="
|
|
7236
|
-
<div class="line"><a name="
|
|
7203
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00879">879</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
7204
|
+
<div class="fragment"><div class="line"><a name="l00880"></a><span class="lineno"> 880</span> {</div>
|
|
7205
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
7206
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
7207
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
7208
|
+
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  {</div>
|
|
7209
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <span class="keywordflow">return</span> IntervalValue(lhs.lb() & rhs.lb());</div>
|
|
7210
|
+
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  }</div>
|
|
7211
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.lb().getNumeral() >= 0 && rhs.lb().getNumeral() >= 0)</div>
|
|
7212
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  {</div>
|
|
7213
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <span class="keywordflow">return</span> IntervalValue((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, min(lhs.ub(), rhs.ub()));</div>
|
|
7214
|
+
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  }</div>
|
|
7215
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.lb().getNumeral() >= 0)</div>
|
|
7216
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  {</div>
|
|
7217
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">return</span> IntervalValue((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, lhs.ub());</div>
|
|
7218
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  }</div>
|
|
7219
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.lb().getNumeral() >= 0)</div>
|
|
7220
|
+
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  {</div>
|
|
7221
|
+
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="keywordflow">return</span> IntervalValue((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, rhs.ub());</div>
|
|
7222
|
+
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  }</div>
|
|
7223
|
+
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <span class="keywordflow">else</span></div>
|
|
7224
|
+
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  {</div>
|
|
7225
|
+
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
7226
|
+
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  }</div>
|
|
7227
|
+
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> }</div>
|
|
7237
7228
|
</div><!-- fragment -->
|
|
7238
7229
|
</div>
|
|
7239
7230
|
</div>
|
|
@@ -7442,23 +7433,23 @@ template<unsigned ElementSize> </div>
|
|
|
7442
7433
|
|
|
7443
7434
|
<p>Multiply IntervalValues. </p>
|
|
7444
7435
|
|
|
7445
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
7446
|
-
<div class="fragment"><div class="line"><a name="
|
|
7447
|
-
<div class="line"><a name="
|
|
7448
|
-
<div class="line"><a name="
|
|
7449
|
-
<div class="line"><a name="
|
|
7450
|
-
<div class="line"><a name="
|
|
7451
|
-
<div class="line"><a name="
|
|
7452
|
-
<div class="line"><a name="
|
|
7453
|
-
<div class="line"><a name="
|
|
7454
|
-
<div class="line"><a name="
|
|
7455
|
-
<div class="line"><a name="
|
|
7456
|
-
<div class="line"><a name="
|
|
7457
|
-
<div class="line"><a name="
|
|
7458
|
-
<div class="line"><a name="
|
|
7459
|
-
<div class="line"><a name="
|
|
7460
|
-
<div class="line"><a name="
|
|
7461
|
-
<div class="line"><a name="
|
|
7436
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00533">533</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
7437
|
+
<div class="fragment"><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> {</div>
|
|
7438
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
7439
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  {</div>
|
|
7440
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
7441
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div>
|
|
7442
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">else</span></div>
|
|
7443
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div>
|
|
7444
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  NumericLiteral ll = lhs.lb() * rhs.lb();</div>
|
|
7445
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  NumericLiteral lu = lhs.lb() * rhs.ub();</div>
|
|
7446
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  NumericLiteral ul = lhs.ub() * rhs.lb();</div>
|
|
7447
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  NumericLiteral uu = lhs.ub() * rhs.ub();</div>
|
|
7448
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  std::vector<NumericLiteral> vec{ll, lu, ul, uu};</div>
|
|
7449
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">return</span> IntervalValue(NumericLiteral::min(vec),</div>
|
|
7450
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  NumericLiteral::max(vec));</div>
|
|
7451
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div>
|
|
7452
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> }</div>
|
|
7462
7453
|
</div><!-- fragment -->
|
|
7463
7454
|
</div>
|
|
7464
7455
|
</div>
|
|
@@ -7498,21 +7489,21 @@ template<unsigned ElementSize> </div>
|
|
|
7498
7489
|
|
|
7499
7490
|
<p>Add IntervalValues. </p>
|
|
7500
7491
|
|
|
7501
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
7502
|
-
<div class="fragment"><div class="line"><a name="
|
|
7503
|
-
<div class="line"><a name="
|
|
7504
|
-
<div class="line"><a name="
|
|
7505
|
-
<div class="line"><a name="
|
|
7506
|
-
<div class="line"><a name="
|
|
7507
|
-
<div class="line"><a name="
|
|
7508
|
-
<div class="line"><a name="
|
|
7509
|
-
<div class="line"><a name="
|
|
7510
|
-
<div class="line"><a name="
|
|
7511
|
-
<div class="line"><a name="
|
|
7512
|
-
<div class="line"><a name="
|
|
7513
|
-
<div class="line"><a name="
|
|
7514
|
-
<div class="line"><a name="
|
|
7515
|
-
<div class="line"><a name="
|
|
7492
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00497">497</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
7493
|
+
<div class="fragment"><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> {</div>
|
|
7494
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
7495
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div>
|
|
7496
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
7497
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  }</div>
|
|
7498
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.isTop() || rhs.isTop())</div>
|
|
7499
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  {</div>
|
|
7500
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
7501
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  }</div>
|
|
7502
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keywordflow">else</span></div>
|
|
7503
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  {</div>
|
|
7504
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">return</span> IntervalValue(lhs.lb() + rhs.lb(), lhs.ub() + rhs.ub());</div>
|
|
7505
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  }</div>
|
|
7506
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> }</div>
|
|
7516
7507
|
</div><!-- fragment -->
|
|
7517
7508
|
</div>
|
|
7518
7509
|
</div>
|
|
@@ -7552,21 +7543,21 @@ template<unsigned ElementSize> </div>
|
|
|
7552
7543
|
|
|
7553
7544
|
<p>Subtract IntervalValues. </p>
|
|
7554
7545
|
|
|
7555
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
7556
|
-
<div class="fragment"><div class="line"><a name="
|
|
7557
|
-
<div class="line"><a name="
|
|
7558
|
-
<div class="line"><a name="
|
|
7559
|
-
<div class="line"><a name="
|
|
7560
|
-
<div class="line"><a name="
|
|
7561
|
-
<div class="line"><a name="
|
|
7562
|
-
<div class="line"><a name="
|
|
7563
|
-
<div class="line"><a name="
|
|
7564
|
-
<div class="line"><a name="
|
|
7565
|
-
<div class="line"><a name="
|
|
7566
|
-
<div class="line"><a name="
|
|
7567
|
-
<div class="line"><a name="
|
|
7568
|
-
<div class="line"><a name="
|
|
7569
|
-
<div class="line"><a name="
|
|
7546
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00515">515</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
7547
|
+
<div class="fragment"><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> {</div>
|
|
7548
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
7549
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  {</div>
|
|
7550
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
7551
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  }</div>
|
|
7552
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.isTop() || rhs.isTop())</div>
|
|
7553
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div>
|
|
7554
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
7555
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  }</div>
|
|
7556
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">else</span></div>
|
|
7557
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  {</div>
|
|
7558
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">return</span> IntervalValue(lhs.lb() - rhs.ub(), lhs.ub() - rhs.lb());</div>
|
|
7559
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  }</div>
|
|
7560
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> }</div>
|
|
7570
7561
|
</div><!-- fragment -->
|
|
7571
7562
|
</div>
|
|
7572
7563
|
</div>
|
|
@@ -7689,29 +7680,29 @@ template<unsigned ElementSize> </div>
|
|
|
7689
7680
|
|
|
7690
7681
|
<p>Divide IntervalValues. </p>
|
|
7691
7682
|
|
|
7692
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
7693
|
-
<div class="fragment"><div class="line"><a name="
|
|
7694
|
-
<div class="line"><a name="
|
|
7695
|
-
<div class="line"><a name="
|
|
7696
|
-
<div class="line"><a name="
|
|
7697
|
-
<div class="line"><a name="
|
|
7698
|
-
<div class="line"><a name="
|
|
7699
|
-
<div class="line"><a name="
|
|
7700
|
-
<div class="line"><a name="
|
|
7701
|
-
<div class="line"><a name="
|
|
7702
|
-
<div class="line"><a name="
|
|
7703
|
-
<div class="line"><a name="
|
|
7704
|
-
<div class="line"><a name="
|
|
7705
|
-
<div class="line"><a name="
|
|
7706
|
-
<div class="line"><a name="
|
|
7707
|
-
<div class="line"><a name="
|
|
7708
|
-
<div class="line"><a name="
|
|
7709
|
-
<div class="line"><a name="
|
|
7710
|
-
<div class="line"><a name="
|
|
7711
|
-
<div class="line"><a name="
|
|
7712
|
-
<div class="line"><a name="
|
|
7713
|
-
<div class="line"><a name="
|
|
7714
|
-
<div class="line"><a name="
|
|
7683
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00553">553</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
7684
|
+
<div class="fragment"><div class="line"><a name="l00555"></a><span class="lineno"> 555</span> {</div>
|
|
7685
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
7686
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  {</div>
|
|
7687
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
7688
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div>
|
|
7689
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs.contains(0))</div>
|
|
7690
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  {</div>
|
|
7691
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">return</span> lhs.is_zero() ? IntervalValue(0, 0) : IntervalValue::top();</div>
|
|
7692
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  }</div>
|
|
7693
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">else</span></div>
|
|
7694
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  {</div>
|
|
7695
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="comment">// Neither the dividend nor the divisor contains 0</span></div>
|
|
7696
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  NumericLiteral ll = lhs.lb() / rhs.lb();</div>
|
|
7697
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  NumericLiteral lu = lhs.lb() / rhs.ub();</div>
|
|
7698
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  NumericLiteral ul = lhs.ub() / rhs.lb();</div>
|
|
7699
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  NumericLiteral uu = lhs.ub() / rhs.ub();</div>
|
|
7700
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  std::vector<NumericLiteral> vec{ll, lu, ul, uu};</div>
|
|
7701
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  </div>
|
|
7702
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">return</span> IntervalValue(NumericLiteral::min(vec),</div>
|
|
7703
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  NumericLiteral::max(vec));</div>
|
|
7704
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div>
|
|
7705
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> }</div>
|
|
7715
7706
|
</div><!-- fragment -->
|
|
7716
7707
|
</div>
|
|
7717
7708
|
</div>
|
|
@@ -7749,55 +7740,55 @@ template<unsigned ElementSize> </div>
|
|
|
7749
7740
|
</table>
|
|
7750
7741
|
</div><div class="memdoc">
|
|
7751
7742
|
|
|
7752
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
7753
|
-
<div class="fragment"><div class="line"><a name="
|
|
7754
|
-
<div class="line"><a name="
|
|
7755
|
-
<div class="line"><a name="
|
|
7756
|
-
<div class="line"><a name="
|
|
7757
|
-
<div class="line"><a name="
|
|
7758
|
-
<div class="line"><a name="
|
|
7759
|
-
<div class="line"><a name="
|
|
7760
|
-
<div class="line"><a name="
|
|
7761
|
-
<div class="line"><a name="
|
|
7762
|
-
<div class="line"><a name="
|
|
7763
|
-
<div class="line"><a name="
|
|
7764
|
-
<div class="line"><a name="
|
|
7765
|
-
<div class="line"><a name="
|
|
7766
|
-
<div class="line"><a name="
|
|
7767
|
-
<div class="line"><a name="
|
|
7768
|
-
<div class="line"><a name="
|
|
7769
|
-
<div class="line"><a name="
|
|
7770
|
-
<div class="line"><a name="
|
|
7771
|
-
<div class="line"><a name="
|
|
7772
|
-
<div class="line"><a name="
|
|
7773
|
-
<div class="line"><a name="
|
|
7774
|
-
<div class="line"><a name="
|
|
7775
|
-
<div class="line"><a name="
|
|
7776
|
-
<div class="line"><a name="
|
|
7777
|
-
<div class="line"><a name="
|
|
7778
|
-
<div class="line"><a name="
|
|
7779
|
-
<div class="line"><a name="
|
|
7780
|
-
<div class="line"><a name="
|
|
7781
|
-
<div class="line"><a name="
|
|
7782
|
-
<div class="line"><a name="
|
|
7783
|
-
<div class="line"><a name="
|
|
7784
|
-
<div class="line"><a name="
|
|
7785
|
-
<div class="line"><a name="
|
|
7786
|
-
<div class="line"><a name="
|
|
7787
|
-
<div class="line"><a name="
|
|
7788
|
-
<div class="line"><a name="
|
|
7789
|
-
<div class="line"><a name="
|
|
7790
|
-
<div class="line"><a name="
|
|
7791
|
-
<div class="line"><a name="
|
|
7792
|
-
<div class="line"><a name="
|
|
7793
|
-
<div class="line"><a name="
|
|
7794
|
-
<div class="line"><a name="
|
|
7795
|
-
<div class="line"><a name="
|
|
7796
|
-
<div class="line"><a name="
|
|
7797
|
-
<div class="line"><a name="
|
|
7798
|
-
<div class="line"><a name="
|
|
7799
|
-
<div class="line"><a name="
|
|
7800
|
-
<div class="line"><a name="
|
|
7743
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00670">670</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
7744
|
+
<div class="fragment"><div class="line"><a name="l00671"></a><span class="lineno"> 671</span> {</div>
|
|
7745
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="comment">// If either lhs or rhs is bottom, the result is bottom</span></div>
|
|
7746
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
7747
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  {</div>
|
|
7748
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
7749
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  }</div>
|
|
7750
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="comment">// If either lhs or rhs is top, the result is top</span></div>
|
|
7751
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.isTop() || rhs.isTop())</div>
|
|
7752
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  {</div>
|
|
7753
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
7754
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  }</div>
|
|
7755
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">else</span></div>
|
|
7756
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  {</div>
|
|
7757
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="comment">// If both lhs and rhs are numerals (lb = ub), directly compare their values</span></div>
|
|
7758
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
7759
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  {</div>
|
|
7760
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="comment">// It means lhs.lb() < rhs.lb()? true: false</span></div>
|
|
7761
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">return</span> lhs.lb().geq(rhs.lb()) ? IntervalValue(0, 0) : IntervalValue(1, 1);</div>
|
|
7762
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  }</div>
|
|
7763
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">else</span></div>
|
|
7764
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  {</div>
|
|
7765
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="comment">// Return [1,1] means lhs is totally less than rhs</span></div>
|
|
7766
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="comment">// When lhs.ub < rhs.lb, e.g., lhs:[1, 2] rhs:[3, 4]</span></div>
|
|
7767
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="comment">// lhs.ub(2) < rhs.lb(3)</span></div>
|
|
7768
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="comment">// It means lhs.ub() < rhs.lb()</span></div>
|
|
7769
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">if</span> (!lhs.ub().geq(rhs.lb()))</div>
|
|
7770
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  {</div>
|
|
7771
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">return</span> IntervalValue(1, 1);</div>
|
|
7772
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  }</div>
|
|
7773
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="comment">// Return [0,0] means lhs is totally impossible to be less than rhs</span></div>
|
|
7774
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="comment">// i.e., lhs is totally greater than or equal to rhs</span></div>
|
|
7775
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="comment">// When lhs.lb >= rhs.ub, e.g., lhs:[4,5] rhs:[3,4]</span></div>
|
|
7776
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="comment">// lhs.lb(4) >= rhs.ub(4)</span></div>
|
|
7777
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.lb().geq(rhs.ub()))</div>
|
|
7778
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  {</div>
|
|
7779
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keywordflow">return</span> IntervalValue(0, 0);</div>
|
|
7780
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  }</div>
|
|
7781
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="comment">// For other cases, lhs can be less than rhs or not, depending on the values</span></div>
|
|
7782
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="comment">// e.g., lhs: [2,4], rhs: [1,3],</span></div>
|
|
7783
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="comment">// lhs can be less than rhs if lhs is 2, rhs is 3.</span></div>
|
|
7784
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="comment">// lhs can also not be less than rhs if lhs is 4 and rhs is 1</span></div>
|
|
7785
|
+
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">else</span></div>
|
|
7786
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  {</div>
|
|
7787
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">return</span> IntervalValue(0, 1);</div>
|
|
7788
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  }</div>
|
|
7789
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  }</div>
|
|
7790
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  }</div>
|
|
7791
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> }</div>
|
|
7801
7792
|
</div><!-- fragment -->
|
|
7802
7793
|
</div>
|
|
7803
7794
|
</div>
|
|
@@ -7837,25 +7828,25 @@ template<unsigned ElementSize> </div>
|
|
|
7837
7828
|
|
|
7838
7829
|
<p>Left binary shift of IntervalValues. </p>
|
|
7839
7830
|
|
|
7840
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
7841
|
-
<div class="fragment"><div class="line"><a name="
|
|
7842
|
-
<div class="line"><a name="
|
|
7843
|
-
<div class="line"><a name="
|
|
7844
|
-
<div class="line"><a name="
|
|
7845
|
-
<div class="line"><a name="
|
|
7846
|
-
<div class="line"><a name="
|
|
7847
|
-
<div class="line"><a name="
|
|
7848
|
-
<div class="line"><a name="
|
|
7849
|
-
<div class="line"><a name="
|
|
7850
|
-
<div class="line"><a name="
|
|
7851
|
-
<div class="line"><a name="
|
|
7852
|
-
<div class="line"><a name="
|
|
7853
|
-
<div class="line"><a name="
|
|
7854
|
-
<div class="line"><a name="
|
|
7855
|
-
<div class="line"><a name="
|
|
7856
|
-
<div class="line"><a name="
|
|
7857
|
-
<div class="line"><a name="
|
|
7858
|
-
<div class="line"><a name="
|
|
7831
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00822">822</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
7832
|
+
<div class="fragment"><div class="line"><a name="l00823"></a><span class="lineno"> 823</span> {</div>
|
|
7833
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="comment">//TODO: implement <<</span></div>
|
|
7834
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
7835
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
7836
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordflow">if</span> (lhs.isTop() && rhs.isTop())</div>
|
|
7837
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
7838
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">else</span></div>
|
|
7839
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  {</div>
|
|
7840
|
+
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  IntervalValue shift = rhs;</div>
|
|
7841
|
+
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  shift.meet_with(IntervalValue(0, IntervalValue::plus_infinity()));</div>
|
|
7842
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordflow">if</span> (shift.isBottom())</div>
|
|
7843
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
7844
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  IntervalValue coeff(1 << (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) shift.lb().getNumeral(),</div>
|
|
7845
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  shift.ub().is_infinity() ? IntervalValue::plus_infinity() : 1</div>
|
|
7846
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  << (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) shift.ub().getNumeral());</div>
|
|
7847
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">return</span> lhs * coeff;</div>
|
|
7848
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  }</div>
|
|
7849
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> }</div>
|
|
7859
7850
|
</div><!-- fragment -->
|
|
7860
7851
|
</div>
|
|
7861
7852
|
</div>
|
|
@@ -7931,11 +7922,11 @@ template<typename F , typename S > </div>
|
|
|
7931
7922
|
|
|
7932
7923
|
<p>Write an <a class="el" href="classSVF_1_1IntervalValue.html">IntervalValue</a> on a stream. </p>
|
|
7933
7924
|
|
|
7934
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
7935
|
-
<div class="fragment"><div class="line"><a name="
|
|
7936
|
-
<div class="line"><a name="
|
|
7937
|
-
<div class="line"><a name="
|
|
7938
|
-
<div class="line"><a name="
|
|
7925
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00964">964</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
7926
|
+
<div class="fragment"><div class="line"><a name="l00966"></a><span class="lineno"> 966</span> {</div>
|
|
7927
|
+
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  IntervalValue.dump(o);</div>
|
|
7928
|
+
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keywordflow">return</span> o;</div>
|
|
7929
|
+
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> }</div>
|
|
7939
7930
|
</div><!-- fragment -->
|
|
7940
7931
|
</div>
|
|
7941
7932
|
</div>
|
|
@@ -8036,54 +8027,54 @@ template<typename F , typename S > </div>
|
|
|
8036
8027
|
</table>
|
|
8037
8028
|
</div><div class="memdoc">
|
|
8038
8029
|
|
|
8039
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
8040
|
-
<div class="fragment"><div class="line"><a name="
|
|
8041
|
-
<div class="line"><a name="
|
|
8042
|
-
<div class="line"><a name="
|
|
8043
|
-
<div class="line"><a name="
|
|
8044
|
-
<div class="line"><a name="
|
|
8045
|
-
<div class="line"><a name="
|
|
8046
|
-
<div class="line"><a name="
|
|
8047
|
-
<div class="line"><a name="
|
|
8048
|
-
<div class="line"><a name="
|
|
8049
|
-
<div class="line"><a name="
|
|
8050
|
-
<div class="line"><a name="
|
|
8051
|
-
<div class="line"><a name="
|
|
8052
|
-
<div class="line"><a name="
|
|
8053
|
-
<div class="line"><a name="
|
|
8054
|
-
<div class="line"><a name="
|
|
8055
|
-
<div class="line"><a name="
|
|
8056
|
-
<div class="line"><a name="
|
|
8057
|
-
<div class="line"><a name="
|
|
8058
|
-
<div class="line"><a name="
|
|
8059
|
-
<div class="line"><a name="
|
|
8060
|
-
<div class="line"><a name="
|
|
8061
|
-
<div class="line"><a name="
|
|
8062
|
-
<div class="line"><a name="
|
|
8063
|
-
<div class="line"><a name="
|
|
8064
|
-
<div class="line"><a name="
|
|
8065
|
-
<div class="line"><a name="
|
|
8066
|
-
<div class="line"><a name="
|
|
8067
|
-
<div class="line"><a name="
|
|
8068
|
-
<div class="line"><a name="
|
|
8069
|
-
<div class="line"><a name="
|
|
8070
|
-
<div class="line"><a name="
|
|
8071
|
-
<div class="line"><a name="
|
|
8072
|
-
<div class="line"><a name="
|
|
8073
|
-
<div class="line"><a name="
|
|
8074
|
-
<div class="line"><a name="
|
|
8075
|
-
<div class="line"><a name="
|
|
8076
|
-
<div class="line"><a name="
|
|
8077
|
-
<div class="line"><a name="
|
|
8078
|
-
<div class="line"><a name="
|
|
8079
|
-
<div class="line"><a name="
|
|
8080
|
-
<div class="line"><a name="
|
|
8081
|
-
<div class="line"><a name="
|
|
8082
|
-
<div class="line"><a name="
|
|
8083
|
-
<div class="line"><a name="
|
|
8084
|
-
<div class="line"><a name="
|
|
8085
|
-
<div class="line"><a name="
|
|
8086
|
-
<div class="line"><a name="
|
|
8030
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00772">772</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
8031
|
+
<div class="fragment"><div class="line"><a name="l00773"></a><span class="lineno"> 773</span> {</div>
|
|
8032
|
+
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="comment">// If either lhs or rhs is bottom, the result is bottom</span></div>
|
|
8033
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
8034
|
+
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  {</div>
|
|
8035
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
8036
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  }</div>
|
|
8037
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="comment">// If either lhs or rhs is top, the result is top</span></div>
|
|
8038
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.isTop() || rhs.isTop())</div>
|
|
8039
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  {</div>
|
|
8040
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
8041
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  }</div>
|
|
8042
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <span class="keywordflow">else</span></div>
|
|
8043
|
+
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  {</div>
|
|
8044
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <span class="comment">// If both lhs and rhs are numerals (lb = ub), directly compare their values</span></div>
|
|
8045
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
8046
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  {</div>
|
|
8047
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordflow">return</span> lhs.lb().leq(rhs.lb()) ? IntervalValue(1, 1) : IntervalValue(0, 0);</div>
|
|
8048
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  }</div>
|
|
8049
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keywordflow">else</span></div>
|
|
8050
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  {</div>
|
|
8051
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <span class="comment">// Return [1,1] means lhs is totally less than or equal to rhs</span></div>
|
|
8052
|
+
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="comment">// When lhs.ub <= rhs.lb, e.g., lhs:[1, 2] rhs:[2, 3]</span></div>
|
|
8053
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="comment">// lhs.ub(2) <= rhs.lb(2)</span></div>
|
|
8054
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keywordflow">if</span> (lhs.ub().leq(rhs.lb()))</div>
|
|
8055
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  {</div>
|
|
8056
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keywordflow">return</span> IntervalValue(1, 1);</div>
|
|
8057
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  }</div>
|
|
8058
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="comment">// Return [0,0] means lhs is totally impossible to be less than or equal to rhs</span></div>
|
|
8059
|
+
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="comment">// i.e., lhs is totally greater than rhs</span></div>
|
|
8060
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="comment">// When lhs.lb > rhs.ub, e.g., lhs:[3, 4] rhs:[1, 2]</span></div>
|
|
8061
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="comment">// lhs.lb(3) > rhs.ub(2)</span></div>
|
|
8062
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="comment">// It means lhs.lb() > rhs.ub()</span></div>
|
|
8063
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!lhs.lb().leq(rhs.ub()))</div>
|
|
8064
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  {</div>
|
|
8065
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <span class="keywordflow">return</span> IntervalValue(0, 0);</div>
|
|
8066
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  }</div>
|
|
8067
|
+
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="comment">// For other cases, lhs can be less than or equal to rhs or not, depending on the values</span></div>
|
|
8068
|
+
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="comment">// e.g., lhs: [2,4], rhs: [1,3],</span></div>
|
|
8069
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="comment">// lhs can be less than or equal to rhs if lhs is 3, rhs is 3.</span></div>
|
|
8070
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="comment">// lhs can also not be less than or equal to rhs if lhs is 3 and rhs is 2</span></div>
|
|
8071
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="keywordflow">else</span></div>
|
|
8072
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  {</div>
|
|
8073
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">return</span> IntervalValue(0, 1);</div>
|
|
8074
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  }</div>
|
|
8075
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  }</div>
|
|
8076
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  }</div>
|
|
8077
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> }</div>
|
|
8087
8078
|
</div><!-- fragment -->
|
|
8088
8079
|
</div>
|
|
8089
8080
|
</div>
|
|
@@ -8121,55 +8112,55 @@ template<typename F , typename S > </div>
|
|
|
8121
8112
|
</table>
|
|
8122
8113
|
</div><div class="memdoc">
|
|
8123
8114
|
|
|
8124
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
8125
|
-
<div class="fragment"><div class="line"><a name="
|
|
8126
|
-
<div class="line"><a name="
|
|
8127
|
-
<div class="line"><a name="
|
|
8128
|
-
<div class="line"><a name="
|
|
8129
|
-
<div class="line"><a name="
|
|
8130
|
-
<div class="line"><a name="
|
|
8131
|
-
<div class="line"><a name="
|
|
8132
|
-
<div class="line"><a name="
|
|
8133
|
-
<div class="line"><a name="
|
|
8134
|
-
<div class="line"><a name="
|
|
8135
|
-
<div class="line"><a name="
|
|
8136
|
-
<div class="line"><a name="
|
|
8137
|
-
<div class="line"><a name="
|
|
8138
|
-
<div class="line"><a name="
|
|
8139
|
-
<div class="line"><a name="
|
|
8140
|
-
<div class="line"><a name="
|
|
8141
|
-
<div class="line"><a name="
|
|
8142
|
-
<div class="line"><a name="
|
|
8143
|
-
<div class="line"><a name="
|
|
8144
|
-
<div class="line"><a name="
|
|
8145
|
-
<div class="line"><a name="
|
|
8146
|
-
<div class="line"><a name="
|
|
8147
|
-
<div class="line"><a name="
|
|
8148
|
-
<div class="line"><a name="
|
|
8149
|
-
<div class="line"><a name="
|
|
8150
|
-
<div class="line"><a name="
|
|
8151
|
-
<div class="line"><a name="
|
|
8152
|
-
<div class="line"><a name="
|
|
8153
|
-
<div class="line"><a name="
|
|
8154
|
-
<div class="line"><a name="
|
|
8155
|
-
<div class="line"><a name="
|
|
8156
|
-
<div class="line"><a name="
|
|
8157
|
-
<div class="line"><a name="
|
|
8158
|
-
<div class="line"><a name="
|
|
8159
|
-
<div class="line"><a name="
|
|
8160
|
-
<div class="line"><a name="
|
|
8161
|
-
<div class="line"><a name="
|
|
8162
|
-
<div class="line"><a name="
|
|
8163
|
-
<div class="line"><a name="
|
|
8164
|
-
<div class="line"><a name="
|
|
8165
|
-
<div class="line"><a name="
|
|
8166
|
-
<div class="line"><a name="
|
|
8167
|
-
<div class="line"><a name="
|
|
8168
|
-
<div class="line"><a name="
|
|
8169
|
-
<div class="line"><a name="
|
|
8170
|
-
<div class="line"><a name="
|
|
8171
|
-
<div class="line"><a name="
|
|
8172
|
-
<div class="line"><a name="
|
|
8115
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00619">619</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
8116
|
+
<div class="fragment"><div class="line"><a name="l00620"></a><span class="lineno"> 620</span> {</div>
|
|
8117
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="comment">// If either lhs or rhs is bottom, the result is bottom</span></div>
|
|
8118
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
8119
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  {</div>
|
|
8120
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
8121
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  }</div>
|
|
8122
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="comment">// If either lhs or rhs is top, the result is top</span></div>
|
|
8123
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.isTop() || rhs.isTop())</div>
|
|
8124
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  {</div>
|
|
8125
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
8126
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  }</div>
|
|
8127
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">else</span></div>
|
|
8128
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  {</div>
|
|
8129
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="comment">// If both lhs and rhs are numerals (lb = ub), directly compare their values</span></div>
|
|
8130
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
8131
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  {</div>
|
|
8132
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="comment">// It means lhs.lb() > rhs.lb()? true: false</span></div>
|
|
8133
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">return</span> lhs.lb().leq(rhs.lb()) ? IntervalValue(0, 0) : IntervalValue(1, 1);</div>
|
|
8134
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  }</div>
|
|
8135
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">else</span></div>
|
|
8136
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  {</div>
|
|
8137
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="comment">// Return [1,1] means lhs is totally greater than rhs</span></div>
|
|
8138
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="comment">// When lhs.lb > rhs.ub, e.g., lhs:[3, 4] rhs:[1, 2]</span></div>
|
|
8139
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="comment">// lhs.lb(3) > rhs.ub(2)</span></div>
|
|
8140
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="comment">// It means lhs.lb() > rhs.ub()</span></div>
|
|
8141
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">if</span> (!lhs.lb().leq(rhs.ub()))</div>
|
|
8142
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  {</div>
|
|
8143
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">return</span> IntervalValue(1, 1);</div>
|
|
8144
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  }</div>
|
|
8145
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="comment">// Return [0,0] means lhs is totally impossible to be greater than rhs</span></div>
|
|
8146
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="comment">// i.e., lhs is totally less than or equal to rhs</span></div>
|
|
8147
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="comment">// When lhs.ub <= rhs.lb, e.g., lhs:[3, 4] rhs:[4,5]</span></div>
|
|
8148
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="comment">// lhs.ub(4) <= rhs.lb(4)</span></div>
|
|
8149
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.ub().leq(rhs.lb()))</div>
|
|
8150
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  {</div>
|
|
8151
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">return</span> IntervalValue(0, 0);</div>
|
|
8152
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  }</div>
|
|
8153
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="comment">// For other cases, lhs can be greater than or not, depending on the values</span></div>
|
|
8154
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="comment">// e.g., lhs: [2,4], rhs: [1,3],</span></div>
|
|
8155
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="comment">// lhs can be greater than rhs if lhs is 4 and rhs is 1.</span></div>
|
|
8156
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="comment">// lhs can also not be greater than rhs if lhs is 2 and rhs is 3</span></div>
|
|
8157
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keywordflow">else</span></div>
|
|
8158
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  {</div>
|
|
8159
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keywordflow">return</span> IntervalValue(0, 1);</div>
|
|
8160
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  }</div>
|
|
8161
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  }</div>
|
|
8162
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  }</div>
|
|
8163
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> }</div>
|
|
8173
8164
|
</div><!-- fragment -->
|
|
8174
8165
|
</div>
|
|
8175
8166
|
</div>
|
|
@@ -8207,54 +8198,54 @@ template<typename F , typename S > </div>
|
|
|
8207
8198
|
</table>
|
|
8208
8199
|
</div><div class="memdoc">
|
|
8209
8200
|
|
|
8210
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
8211
|
-
<div class="fragment"><div class="line"><a name="
|
|
8212
|
-
<div class="line"><a name="
|
|
8213
|
-
<div class="line"><a name="
|
|
8214
|
-
<div class="line"><a name="
|
|
8215
|
-
<div class="line"><a name="
|
|
8216
|
-
<div class="line"><a name="
|
|
8217
|
-
<div class="line"><a name="
|
|
8218
|
-
<div class="line"><a name="
|
|
8219
|
-
<div class="line"><a name="
|
|
8220
|
-
<div class="line"><a name="
|
|
8221
|
-
<div class="line"><a name="
|
|
8222
|
-
<div class="line"><a name="
|
|
8223
|
-
<div class="line"><a name="
|
|
8224
|
-
<div class="line"><a name="
|
|
8225
|
-
<div class="line"><a name="
|
|
8226
|
-
<div class="line"><a name="
|
|
8227
|
-
<div class="line"><a name="
|
|
8228
|
-
<div class="line"><a name="
|
|
8229
|
-
<div class="line"><a name="
|
|
8230
|
-
<div class="line"><a name="
|
|
8231
|
-
<div class="line"><a name="
|
|
8232
|
-
<div class="line"><a name="
|
|
8233
|
-
<div class="line"><a name="
|
|
8234
|
-
<div class="line"><a name="
|
|
8235
|
-
<div class="line"><a name="
|
|
8236
|
-
<div class="line"><a name="
|
|
8237
|
-
<div class="line"><a name="
|
|
8238
|
-
<div class="line"><a name="
|
|
8239
|
-
<div class="line"><a name="
|
|
8240
|
-
<div class="line"><a name="
|
|
8241
|
-
<div class="line"><a name="
|
|
8242
|
-
<div class="line"><a name="
|
|
8243
|
-
<div class="line"><a name="
|
|
8244
|
-
<div class="line"><a name="
|
|
8245
|
-
<div class="line"><a name="
|
|
8246
|
-
<div class="line"><a name="
|
|
8247
|
-
<div class="line"><a name="
|
|
8248
|
-
<div class="line"><a name="
|
|
8249
|
-
<div class="line"><a name="
|
|
8250
|
-
<div class="line"><a name="
|
|
8251
|
-
<div class="line"><a name="
|
|
8252
|
-
<div class="line"><a name="
|
|
8253
|
-
<div class="line"><a name="
|
|
8254
|
-
<div class="line"><a name="
|
|
8255
|
-
<div class="line"><a name="
|
|
8256
|
-
<div class="line"><a name="
|
|
8257
|
-
<div class="line"><a name="
|
|
8201
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00722">722</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
8202
|
+
<div class="fragment"><div class="line"><a name="l00723"></a><span class="lineno"> 723</span> {</div>
|
|
8203
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="comment">// If either lhs or rhs is bottom, the result is bottom</span></div>
|
|
8204
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
8205
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  {</div>
|
|
8206
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
8207
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  }</div>
|
|
8208
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="comment">// If either lhs or rhs is top, the result is top</span></div>
|
|
8209
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.isTop() || rhs.isTop())</div>
|
|
8210
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  {</div>
|
|
8211
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
8212
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  }</div>
|
|
8213
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="keywordflow">else</span></div>
|
|
8214
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  {</div>
|
|
8215
|
+
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="comment">// If both lhs and rhs are numerals (lb = ub), directly compare their values</span></div>
|
|
8216
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
8217
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  {</div>
|
|
8218
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">return</span> lhs.lb().geq(rhs.lb()) ? IntervalValue(1, 1) : IntervalValue(0, 0);</div>
|
|
8219
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  }</div>
|
|
8220
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordflow">else</span></div>
|
|
8221
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  {</div>
|
|
8222
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="comment">// Return [1,1] means lhs is totally greater than or equal to rhs</span></div>
|
|
8223
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="comment">// When lhs.lb >= rhs.ub, e.g., lhs:[2, 3] rhs:[1, 2]</span></div>
|
|
8224
|
+
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="comment">// lhs.lb(2) >= rhs.ub(2)</span></div>
|
|
8225
|
+
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">if</span> (lhs.lb().geq(rhs.ub()))</div>
|
|
8226
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div>
|
|
8227
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">return</span> IntervalValue(1, 1);</div>
|
|
8228
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  }</div>
|
|
8229
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="comment">// Return [0,0] means lhs is totally impossible to be greater than or equal to rhs</span></div>
|
|
8230
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="comment">// i.e., lhs is totally less than rhs</span></div>
|
|
8231
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="comment">// When lhs.ub < rhs.lb, e.g., lhs:[1, 2] rhs:[3, 4]</span></div>
|
|
8232
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="comment">// lhs.ub(2) < rhs.lb(3)</span></div>
|
|
8233
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="comment">// It means lhs.ub() < rhs.lb()</span></div>
|
|
8234
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!lhs.ub().geq(rhs.lb()))</div>
|
|
8235
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  {</div>
|
|
8236
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">return</span> IntervalValue(0, 0);</div>
|
|
8237
|
+
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  }</div>
|
|
8238
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="comment">// For other cases, lhs can be greater than or equal to rhs or not, depending on the values</span></div>
|
|
8239
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="comment">// e.g., lhs: [2,4], rhs: [1,3],</span></div>
|
|
8240
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="comment">// lhs can be greater than or equal to rhs if lhs is 3, rhs is 2.</span></div>
|
|
8241
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="comment">// lhs can also not be greater than or equal to rhs if lhs is 2 and rhs is 3</span></div>
|
|
8242
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">else</span></div>
|
|
8243
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  {</div>
|
|
8244
|
+
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">return</span> IntervalValue(0, 1);</div>
|
|
8245
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div>
|
|
8246
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  }</div>
|
|
8247
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  }</div>
|
|
8248
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> }</div>
|
|
8258
8249
|
</div><!-- fragment -->
|
|
8259
8250
|
</div>
|
|
8260
8251
|
</div>
|
|
@@ -8294,40 +8285,40 @@ template<typename F , typename S > </div>
|
|
|
8294
8285
|
|
|
8295
8286
|
<p>Left binary shift of IntervalValues. </p>
|
|
8296
8287
|
|
|
8297
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
8298
|
-
<div class="fragment"><div class="line"><a name="
|
|
8299
|
-
<div class="line"><a name="
|
|
8300
|
-
<div class="line"><a name="
|
|
8301
|
-
<div class="line"><a name="
|
|
8302
|
-
<div class="line"><a name="
|
|
8303
|
-
<div class="line"><a name="
|
|
8304
|
-
<div class="line"><a name="
|
|
8305
|
-
<div class="line"><a name="
|
|
8306
|
-
<div class="line"><a name="
|
|
8307
|
-
<div class="line"><a name="
|
|
8308
|
-
<div class="line"><a name="
|
|
8309
|
-
<div class="line"><a name="
|
|
8310
|
-
<div class="line"><a name="
|
|
8311
|
-
<div class="line"><a name="
|
|
8312
|
-
<div class="line"><a name="
|
|
8313
|
-
<div class="line"><a name="
|
|
8314
|
-
<div class="line"><a name="
|
|
8315
|
-
<div class="line"><a name="
|
|
8316
|
-
<div class="line"><a name="
|
|
8317
|
-
<div class="line"><a name="
|
|
8318
|
-
<div class="line"><a name="
|
|
8319
|
-
<div class="line"><a name="
|
|
8320
|
-
<div class="line"><a name="
|
|
8321
|
-
<div class="line"><a name="
|
|
8322
|
-
<div class="line"><a name="
|
|
8323
|
-
<div class="line"><a name="
|
|
8324
|
-
<div class="line"><a name="
|
|
8325
|
-
<div class="line"><a name="
|
|
8326
|
-
<div class="line"><a name="
|
|
8327
|
-
<div class="line"><a name="
|
|
8328
|
-
<div class="line"><a name="
|
|
8329
|
-
<div class="line"><a name="
|
|
8330
|
-
<div class="line"><a name="
|
|
8288
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00843">843</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
8289
|
+
<div class="fragment"><div class="line"><a name="l00844"></a><span class="lineno"> 844</span> {</div>
|
|
8290
|
+
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="comment">//TODO: implement >></span></div>
|
|
8291
|
+
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
8292
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
8293
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.isTop() && rhs.isTop())</div>
|
|
8294
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
8295
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">else</span></div>
|
|
8296
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  {</div>
|
|
8297
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  IntervalValue shift = rhs;</div>
|
|
8298
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  shift.meet_with(IntervalValue(0, IntervalValue::plus_infinity()));</div>
|
|
8299
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">if</span> (shift.isBottom())</div>
|
|
8300
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
8301
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keywordflow">if</span> (lhs.contains(0))</div>
|
|
8302
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  {</div>
|
|
8303
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  IntervalValue l(lhs.lb(), -1);</div>
|
|
8304
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  IntervalValue u(1, lhs.ub());</div>
|
|
8305
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  IntervalValue tmp = l >> rhs;</div>
|
|
8306
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  tmp.join_with(u >> rhs);</div>
|
|
8307
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  tmp.join_with(IntervalValue(0));</div>
|
|
8308
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="keywordflow">return</span> tmp;</div>
|
|
8309
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div>
|
|
8310
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">else</span></div>
|
|
8311
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  {</div>
|
|
8312
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  NumericLiteral ll = lhs.lb() >> shift.lb();</div>
|
|
8313
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  NumericLiteral lu = lhs.lb() >> shift.ub();</div>
|
|
8314
|
+
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  NumericLiteral ul = lhs.ub() >> shift.lb();</div>
|
|
8315
|
+
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  NumericLiteral uu = lhs.ub() >> shift.ub();</div>
|
|
8316
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  std::vector<NumericLiteral> vec{ll, lu, ul, uu};</div>
|
|
8317
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keywordflow">return</span> IntervalValue(NumericLiteral::min(vec),</div>
|
|
8318
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  NumericLiteral::max(vec));</div>
|
|
8319
|
+
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  }</div>
|
|
8320
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  }</div>
|
|
8321
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> }</div>
|
|
8331
8322
|
</div><!-- fragment -->
|
|
8332
8323
|
</div>
|
|
8333
8324
|
</div>
|
|
@@ -8367,33 +8358,33 @@ template<typename F , typename S > </div>
|
|
|
8367
8358
|
|
|
8368
8359
|
<p>Bitwise XOR of IntervalValues. </p>
|
|
8369
8360
|
|
|
8370
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
8371
|
-
<div class="fragment"><div class="line"><a name="
|
|
8372
|
-
<div class="line"><a name="
|
|
8361
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00935">935</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
8362
|
+
<div class="fragment"><div class="line"><a name="l00936"></a><span class="lineno"> 936</span> {</div>
|
|
8363
|
+
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div>
|
|
8364
|
+
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  {</div>
|
|
8365
|
+
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordtype">int</span> i = 1;</div>
|
|
8366
|
+
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <span class="keywordflow">while</span> ((num >> i) != 0)</div>
|
|
8367
|
+
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  {</div>
|
|
8368
|
+
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  ++i;</div>
|
|
8369
|
+
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  }</div>
|
|
8370
|
+
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">return</span> 1 << i;</div>
|
|
8371
|
+
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  };</div>
|
|
8372
|
+
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
8373
|
+
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
8374
|
+
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
8375
|
+
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">return</span> IntervalValue(lhs.lb() ^ rhs.lb());</div>
|
|
8376
|
+
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.lb().getNumeral() >= 0 && !lhs.ub().is_infinity() &&</div>
|
|
8377
|
+
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  rhs.lb().getNumeral() >= 0 && !rhs.ub().is_infinity())</div>
|
|
8373
8378
|
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  {</div>
|
|
8374
|
-
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <
|
|
8375
|
-
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <
|
|
8376
|
-
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> 
|
|
8377
|
-
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> 
|
|
8378
|
-
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> 
|
|
8379
|
-
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> 
|
|
8380
|
-
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> 
|
|
8381
|
-
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> 
|
|
8382
|
-
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> 
|
|
8383
|
-
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
8384
|
-
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <span class="keywordflow">return</span> IntervalValue(lhs.lb() ^ rhs.lb());</div>
|
|
8385
|
-
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.lb().getNumeral() >= 0 && !lhs.ub().is_infinity() &&</div>
|
|
8386
|
-
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  rhs.lb().getNumeral() >= 0 && !rhs.ub().is_infinity())</div>
|
|
8387
|
-
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  {</div>
|
|
8388
|
-
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> m = std::max(lhs.ub().getNumeral(), rhs.ub().getNumeral());</div>
|
|
8389
|
-
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div>
|
|
8390
|
-
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">return</span> IntervalValue((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) ub);</div>
|
|
8391
|
-
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  }</div>
|
|
8392
|
-
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  <span class="keywordflow">else</span></div>
|
|
8393
|
-
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  {</div>
|
|
8394
|
-
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
8395
|
-
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  }</div>
|
|
8396
|
-
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> }</div>
|
|
8379
|
+
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> m = std::max(lhs.ub().getNumeral(), rhs.ub().getNumeral());</div>
|
|
8380
|
+
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div>
|
|
8381
|
+
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  <span class="keywordflow">return</span> IntervalValue((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) ub);</div>
|
|
8382
|
+
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  }</div>
|
|
8383
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="keywordflow">else</span></div>
|
|
8384
|
+
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  {</div>
|
|
8385
|
+
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
8386
|
+
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div>
|
|
8387
|
+
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> }</div>
|
|
8397
8388
|
</div><!-- fragment -->
|
|
8398
8389
|
</div>
|
|
8399
8390
|
</div>
|
|
@@ -8433,33 +8424,33 @@ template<typename F , typename S > </div>
|
|
|
8433
8424
|
|
|
8434
8425
|
<p>Bitwise OR of IntervalValues. </p>
|
|
8435
8426
|
|
|
8436
|
-
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#
|
|
8437
|
-
<div class="fragment"><div class="line"><a name="
|
|
8438
|
-
<div class="line"><a name="
|
|
8427
|
+
<p class="definition">Definition at line <a class="el" href="IntervalValue_8h_source.html#l00906">906</a> of file <a class="el" href="IntervalValue_8h_source.html">IntervalValue.h</a>.</p>
|
|
8428
|
+
<div class="fragment"><div class="line"><a name="l00907"></a><span class="lineno"> 907</span> {</div>
|
|
8429
|
+
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="keyword">auto</span> next_power_of_2 = [](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> num)</div>
|
|
8430
|
+
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  {</div>
|
|
8431
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="keywordtype">int</span> i = 1;</div>
|
|
8432
|
+
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="keywordflow">while</span> ((num >> i) != 0)</div>
|
|
8433
|
+
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  {</div>
|
|
8434
|
+
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  ++i;</div>
|
|
8435
|
+
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  }</div>
|
|
8436
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="keywordflow">return</span> 1 << i;</div>
|
|
8437
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  };</div>
|
|
8438
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">if</span> (lhs.isBottom() || rhs.isBottom())</div>
|
|
8439
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keywordflow">return</span> IntervalValue::bottom();</div>
|
|
8440
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
8441
|
+
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keywordflow">return</span> IntervalValue(lhs.lb() | rhs.lb());</div>
|
|
8442
|
+
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.lb().getNumeral() >= 0 && !lhs.ub().is_infinity() &&</div>
|
|
8443
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  rhs.lb().getNumeral() >= 0 && !rhs.ub().is_infinity())</div>
|
|
8439
8444
|
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  {</div>
|
|
8440
|
-
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <
|
|
8441
|
-
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <
|
|
8442
|
-
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> 
|
|
8443
|
-
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> 
|
|
8444
|
-
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> 
|
|
8445
|
-
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> 
|
|
8446
|
-
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> 
|
|
8447
|
-
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> 
|
|
8448
|
-
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> 
|
|
8449
|
-
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.is_numeral() && rhs.is_numeral())</div>
|
|
8450
|
-
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keywordflow">return</span> IntervalValue(lhs.lb() | rhs.lb());</div>
|
|
8451
|
-
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs.lb().getNumeral() >= 0 && !lhs.ub().is_infinity() &&</div>
|
|
8452
|
-
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  rhs.lb().getNumeral() >= 0 && !rhs.ub().is_infinity())</div>
|
|
8453
|
-
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  {</div>
|
|
8454
|
-
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> m = std::max(lhs.ub().getNumeral(), rhs.ub().getNumeral());</div>
|
|
8455
|
-
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div>
|
|
8456
|
-
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <span class="keywordflow">return</span> IntervalValue((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) ub);</div>
|
|
8457
|
-
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  }</div>
|
|
8458
|
-
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keywordflow">else</span></div>
|
|
8459
|
-
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  {</div>
|
|
8460
|
-
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
8461
|
-
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  }</div>
|
|
8462
|
-
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> }</div>
|
|
8445
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> m = std::max(lhs.ub().getNumeral(), rhs.ub().getNumeral());</div>
|
|
8446
|
+
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = next_power_of_2(<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>(m+1));</div>
|
|
8447
|
+
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <span class="keywordflow">return</span> IntervalValue((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) 0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>) ub);</div>
|
|
8448
|
+
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  }</div>
|
|
8449
|
+
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <span class="keywordflow">else</span></div>
|
|
8450
|
+
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  {</div>
|
|
8451
|
+
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <span class="keywordflow">return</span> IntervalValue::top();</div>
|
|
8452
|
+
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  }</div>
|
|
8453
|
+
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> }</div>
|
|
8463
8454
|
</div><!-- fragment -->
|
|
8464
8455
|
</div>
|
|
8465
8456
|
</div>
|
|
@@ -8891,7 +8882,7 @@ template<typename GraphType > </div>
|
|
|
8891
8882
|
<div class="ttc" id="anamespaceSVF_html_a41375daa7cc99317d0aa2a21dc643b88a53d18d0ea8b11173db3d2f60f838ffe1"><div class="ttname"><a href="namespaceSVF.html#a41375daa7cc99317d0aa2a21dc643b88a53d18d0ea8b11173db3d2f60f838ffe1">SVF::AEKind::AbstractExecution</a></div><div class="ttdeci">@ AbstractExecution</div></div>
|
|
8892
8883
|
<div class="ttc" id="acJSON_8h_html_a6288dae99eabb0a393b1d4974e01cde7"><div class="ttname"><a href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a></div><div class="ttdeci">const char *const const double number</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00268">cJSON.h:268</a></div></div>
|
|
8893
8884
|
<div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
8894
|
-
<div class="ttc" id="anamespaceSVF_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#
|
|
8885
|
+
<div class="ttc" id="anamespaceSVF_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#l00822">IntervalValue.h:822</a></div></div>
|
|
8895
8886
|
<div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdeci">@ NoAlias</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00528">SVFType.h:528</a></div></div>
|
|
8896
8887
|
<div class="ttc" id="acJSON_8h_html_a25d22ecc7e656d2c59332072684e8766"><div class="ttname"><a href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a></div><div class="ttdeci">const char *const name</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00264">cJSON.h:264</a></div></div>
|
|
8897
8888
|
<div class="ttc" id="anamespaceSVF_html_a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30"><div class="ttname"><a href="namespaceSVF.html#a3e2b6638b0fbca37846e953142bcc844a7f99364c041329bd5758261c8c440b30">SVF::ModRef</a></div><div class="ttdeci">@ ModRef</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00520">SVFType.h:520</a></div></div>
|